Tagi na forum.

Windows 14205 SQL Server 2132
sieci 6796 Windows XP 1921
SQL 6578 Outlook 1838
SBS 3868 Uprawnienia 1777
Windows 2003 2781 IIS 1636
Windows Server 2588 Office 1516
DNS 2315 Skrypt 1499

pokaż wszystkie tagi na forum

Błąd weryfikacji MAC

bigkoma 2011-09-02 11:23:19
0
avatar
 
 
 
Witam, mam następujący błąd.

Stworzyłem swój layout, dodałem na nim możliwość dodawania „webpartów” , web part się dodał, strona działała. Postanowiłem opublikować stronę by te „WebParty” były widoczne również dla pozostałych, strona nadal działa i widoczny jest WebPart …

Ale gdy chcę dodać kolejny „WebPart” to strona się wywala z komunikatem błędu jak poniżej:

Błąd serwera w aplikacji '/'. Sprawdzanie poprawności MAC stanu widoku nie powiodło się. Jeśli ta aplikacja znajduje się na farmie lub w klastrze sieci Web, należy pamiętać, że w konfiguracji <machineKey> musi być zdefiniowany taki sam element validationKey i algorytm sprawdzania poprawności. Nie można używać polecenia AutoGenerate w klastrze. Opis: Podczas wykonywania bieżącego żądania sieci Web wystąpił nieobsługiwany wyjątek. Aby uzyskać dodatkowe informacje o błędzie i miejscu jego występowania w kodzie, przejrzyj ślad stosu. Szczegły wyjątku: System.Web.HttpException: Sprawdzanie poprawności MAC stanu widoku nie powiodło się. Jeśli ta aplikacja znajduje się na farmie lub w klastrze sieci Web, należy pamiętać, że w konfiguracji <machineKey> musi być zdefiniowany taki sam element validationKey i algorytm sprawdzania poprawności. Nie można używać polecenia AutoGenerate w klastrze.Błąd źrdła:


Podczas wykonywania bieżącego żądania sieci Web został wygenerowany nieobsługiwany wyjątek. Informacje dotyczące pochodzenia i lokalizacji wyjątku można zidentyfikować przy użyciu poniższego śladu stosu wyjątku.


Ślad stosu:



[ViewStateException: Nieprawidłowy stan wyświetlania.
Client IP: 10.170.80.131
Port: 2224
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E; InfoPath.3)
ViewState: /wEWLQL/o7uHDgKpn5bCCwLNrvW5AwK9+p7tAgL0mb2QDwKBtcXvDgL57/OpCgLq4Ii/AgLtm/tJApq7z6QFAqrV+4wBAte8k44NAqm/rb8EAsmdsdAKAsrnn80PArikz5UMAoqy2YcBApXB/9kOAsKFheYJAoiZx6wEArD6nPcBAtuN9KYEApuXhZANAvXzk8sKAr6todUPAsr6rsYOAqWwvc8EAsP4xL8LAqblquYGAojq4ckEAoy3544DAtfbjYcLArKI5soNAseknrUMAr/+qPMIAqzx02UCq4qgkwIC3KqU/gcC/tay1gMCjJyPygkCssD+6AkC8bfCxAcCjoDJZALOku/vAwL8uN6OBIpEhX/0cpgk8m34XIv5KlltWRYA
Referer: http://sm-9v5bspob82a:6309/Strony/default.aspx
Path: /Strony/default.aspx]

[HttpException (0x80004005): Sprawdzanie poprawności MAC stanu widoku nie powiodło się. Jeśli ta aplikacja znajduje się na farmie lub w klastrze sieci Web, należy pamiętać, że w konfiguracji <machineKey> musi być zdefiniowany taki sam element validationKey i algorytm sprawdzania poprawności. Nie można używać polecenia AutoGenerate w klastrze.]
System.Web.UI.ViewStateException.ThrowError(Exception inner, String persistedState, String errorPageMessage, Boolean macValidationError) +148
System.Web.UI.ObjectStateFormatter.Deserialize(String inputString) +10977361
System.Web.UI.ClientScriptManager.EnsureEventValidationFieldLoaded() +205




Informacje o wersji: Wersja Microsoft .NET Framework:2.0.50727.5420; Wersja ASP.NET:2.0.50727.5420




 
Dokładnie wywala się w momencie gdy już wybrałem co i gdzie chcę wstawić, klikam zatwierdź i wtedy przytoczony krach :/


WebParty mogę usuwać ale wstawić nowego już nie :/


Poniżej kod layoutu :
 

<%@ Page language="C#"   Inherits="Microsoft.SharePoint.Publishing.PublishingLayoutPage,Microsoft.SharePoint.Publishing,Version=14.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c" meta:progid="SharePoint.WebPartPage.Document" %>
<%@ Register Tagprefix="SharePointWebControls" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Reg
Edytowano 1 raz. Ostatnio 2011-09-02 11:24:29 przez bigkoma.
tagi: sieci   web


larson  2011-09-02 12:36:29 #1
0
avatar
 
 
Czy to się dzieje przy każdym web parcie czy przy jednym wybranym? Czy jak wywalisz wszystkie web party i dodasz jakiś to też jest błąd? Czy błąd jest przy dodaniu do dowolnej strefy WebpartZone czy do określonej (lewa/prawa)?--pzrd Larrynocodesharepoint.blogspot.com

bigkoma  2011-09-02 12:47:52 #1.1
0
avatar
 
 

Błąd jest przy dowolnym elemencie webpart, dodawanych zarówno do lewej jak i prawej kolumny.

bigkoma  2011-09-05 15:59:21 #1.1.1
0
avatar
 
 
 
Udało się przebrnąć i działa ... a to co zrobiłem:



W pliku konfiguracyjnym aplikacji (np. : "C:\inetpub\wwwroot\wss\VirtualDirectories\6309\web.config")



W linijce:

<pages enableSessionState="false" enableViewState="true" enableViewStateMac="true" validateRequest="false" ……



Dodaję dwa parametry:

enableEventValidation="false" viewStateEncryptionMode="Never"



czyli razem powinno to wyglądać mniej więcej tak :

<pages enableEventValidation="false" viewStateEncryptionMode="Never" enableSessionState="false" enableViewState="true" enableViewStateMac="true" validateRequest="false" ……

 
Lecz nasuwa się pytanie, czy rozwiązanie mojego problemu w ten właśnie sposób nie obniża czy wręcz nie stwarza bezpieczeństwa na stronie ??
 

k_sz  2011-09-06 00:37:41 #1.1.1.1
0
avatar
 
 
Witam.
 
- viewStateEncryptionMode="Never": jeżeli nie masz potrzeby szyfrować jakichś danych to ok
- enableEventValidation="false": jak są problemy tak jak w Twoim przypadku można dać na false
 
Do poczytania w wolnej chwili:
 
http://dotnet-codeguru.blogspot.com/2010/11/what-is-enableeventvalidation.html
 
http://msdn.microsoft.com/en-us/library/aa479501.aspx
 
http://abhijitjana.net/2011/01/26/how-to-make-viewstate-secure-in-asp-net/
 
Pozdrawiam,
 
k_sz
 
 

Edytowano 1 raz. Ostatnio 2011-09-06 00:40:29 przez k_sz.
bigkoma  2011-09-09 08:17:04 #1.1.1.1.1
0
avatar
 
 
 
Z tych dwóch parametrów zostawiłem tylko " enableEventValidation="false" " i też działa. Szyfrowanie jest domyślnie wyłączone więc ten drugi (viewStateEncryptionMode) parametr nie musi być, ale jeżeli do mu się wartość "true" to stronka znów przestanie działać, mimo że EventValidation jest wyłączone.


Wątek można uznać z zakończony i rozwiązany ( z zastrzeżeniami).


Co prawda sam znalazłem rozwiązanie, lecz mimo wszystko Dziękuję za odpowiedzi.
 
 

Edytowano 1 raz. Ostatnio 2011-09-09 08:17:26 przez bigkoma.

Udziel odpowiedzi

avatar
Treść wpisu:

Zaloguj się lub Zarejestruj się aby wykonać tę czynność.

Idź na górę strony