6. März 2008

Die Zustandsinformationen sind für diese Seite ungültig. Möglicherweise sind sie fehlerhaft.

Ich habe eine Webanwendung entwickelt die Asp.Net AJAX verwendet. Unter anderem wird auch das AjaxControlToolkit genutzt.

Nun habe ich in einen ModalPopupExtender in dem mehrere RadioButtons liegen. Wenn die Auwahl geändert wird, reagiere ich im CodeBehind darauf. Dies hat auch bis dato immer super geklappt. Auf einmal bekam ich jedoch nach dem Ändern der Auswahl dieser RadioButtons eine ViewStateException - "Die Zustandsinformationen sind für diese Seite ungültig. Möglicherweise sind sie fehlerhaft.".

Der StackTrace der Fehlermeldung lautet:
[HttpException (0x80004005): Die Zustandsinformationen sind für diese Seite ungültig. Möglicherweise sind sie fehlerhaft.]
System.Web.UI.ViewStateException.ThrowError(Exception inner, String persistedState, String errorPageMessage, Boolean macValidationError) +267
System.Web.UI.ClientScriptManager.EnsureEventValidationFieldLoaded() +2133067
System.Web.UI.ClientScriptManager.ValidateEvent(String uniqueId, String argument) +66
System.Web.UI.Control.ValidateEvent(String uniqueID, String eventArgument) +108
System.Web.UI.WebControls.TextBox.LoadPostData(String postDataKey, NameValueCollection postCollection) +36
System.Web.UI.WebControls.TextBox.System.Web.UI.IPostBackDataHandler.LoadPostData(String postDataKey, NameValueCollection postCollection) +12
System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad) +353
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +7350
System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +213
System.Web.UI.Page.ProcessRequest() +86
System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) +18
System.Web.UI.Page.ProcessRequest(HttpContext context) +49
ASP.default_aspx.ProcessRequest(HttpContext context) in d:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\mn4\84e8c227\648fae87\App_Web_6i13s-qv.4.cs:0
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +358
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +64

Ich habe keine Ahnung wo dieser Fehler auf einmal herkommt. Vor allem scheint er von einer TextBox auszugehen (siehe StrackTrace), ich ändere aber lediglich den Wert eines RadioButtons! Ich validiere nichts und mache sonst auch nichts weiter, als mir in einer Session zu merken, welchen RadioButton ich gerade ausgewählt habe. Ich kann mir diesen Fehler also absolut nicht erklären :(

Ich habe längere Zeit gesucht, habe aber nicht herausgefunden wie der Fehler zu Stande kam. Letztendlich habe ich in der Page-Direktive "EnableEventValidation" auf "false" gesetzt. Danach ist das Problem nicht mehr aufgetreten.

Wenn einer eine besser Idee hat, dann bitte immer her mit Vorschlägen ;) Ich bin für alles offen :)


ciao Anke

1 Kommentar:

ovoigt hat gesagt…

Hallo Anke,

Das Problem kenne ich gut, bei mir sind das die Firewalls/Proxys die Probleme bereiten.

Schaue mal hier nach:

http://support.microsoft.com/kb/829743
http://support.microsoft.com/kb/555353

und evtl. hier:

http://support.microsoft.com/kb/312906/

Gruß Olaf