Ich weiß nicht wirklich, wo ich anfangen soll. Ich bekomme:Fehler beim Laden des Viewstate-Fehlers nach dem Verschieben der Website auf einen neuen Server
`Failed to load viewstate. The control tree into which viewstate is being loaded must match the control tree that was used to save viewstate during the previous request. For example, when adding controls dynamically, the controls added during a post-back must match the type and position of the controls added during the initial request.`
nach dem Verschieben einer Website auf einen neuen Server. Der exakt gleiche Code funktioniert auf meinem anderen Server. Es passiert, wenn ich eines meiner Formulare einsende (aber nicht bei allen Formulareinreichungen).
Irgendwelche Ideen, was kann dies verursachen, so muss ich irgendwo suchen?
verwenden: ASP.NET 2.
EDIT: ich auf einen Platzhalter dynamisch zur Laufzeit einige Bedienelemente am Hinzufügen aber gleiche Code funktioniert ok auf meinem anderen Server. Ich habe versucht, die Kontrollen im Platzhalter zu löschen, bevor ich neue hinzufüge (wie ich einen Beitrag darüber sah), aber es hat nicht geholfen.
EDIT2: Es scheint, dass das Postback nur fehlschlägt. Es wird nicht in den OnClick-Code der Schaltfläche gehen, also ist etwas defintiely screwy .. Wenn ich versuche, die Ausnahme zu fangen, scheint es, dass alle Steuerelemente noch erfolgreich hinzugefügt werden ... Einstellung meiner Dynamischen UC zu EnableViewState = false behebt dies bestimmter Fehler.
EDIT3: Ok, ich denke, ich kann einen Griff haben, was passiert. Aus irgendeinem Grund auf dem alten Server ist die Formularaktion default.aspx?action=amend
, aber der neue Server zeigt amend.html?action=amend
, so denke ich, dass das Umschreiben-Modul in IIS versaut ist. Dies würde auch das Problem des Hinzufügens von Steuerelementen erklären, weil die Aktion 2 mal passiert (denke ich). Ich werde in das Rewrite-Modul schauen und sehen, ob etwas falsch ist, und dann zurück posten.
Beide Server haben dieselbe Version von .NET? Ich habe einige Fälle im Internet gefunden, als es durch einige Kompatibilitätsprobleme .net2 vs .net3.5 verursacht wurde, also lohnt es sich vielleicht zu überprüfen. – walther
Ja, beide Server haben leider die selbe Version. – webnoob
Haben Sie versucht, das Steuerelement zu identifizieren, das das verursacht? Fügen Sie dynamisch einige Steuerelemente hinzu? – walther