Ich habe eine Seite, die einen sehr großen Viewstate (> 300KB) hat. ...Ja ich weiß. Ich habe diese Anomalie auf ein Benutzersteuerelement beschränkt, aber ich habe Schwierigkeiten, zu bestimmen, was genau dieses Steuerelement dort hineinbringt.
Ich habe SavePageStateToPersistenceMedium in der Seite überschrieben, bin aber nicht gut mit dem ViewState-Objekt arbeiten übergeben. Könnte ich es in eine rekursive Funktion übergeben, die alles aus dem Objekt ausdrucken würde?
Ich habe versucht mit frei verfügbaren Viewstate-Decodern, aber keiner hat funktioniert. Ich bekomme immer Fehler, wenn es versucht, den Viewstatus zu deserialisieren.
Ich bin ziemlich auf der Suche nach einem Code-Snippet hier.
Danke,
Mark
Danke für die traceing Vorschlag, esp. die trace.axd Sache. Aber das sagt mir immernoch, wie groß die Steuerelemente sind, es sagt mir nicht, was im Sichtzustand ist. Ich möchte in der Lage sein zu sehen, ob es Objekte gibt, die fälschlicherweise serialisiert werden, um den Status anzuzeigen.Was ist eine gute Möglichkeit zu bestimmen, was in meinem Viewstate ist?
Antwort
Früher verwendete ich trace.axd. Es listet jede Anfrage auf und gibt den Inhalt des Viewstates aus. Sie müssen die Ablaufverfolgung in web.config aktivieren. Wenn Sie viele Anfragen haben, sollten Sie die Cachegröße auf mehr als 10 aktualisieren.
In Bezug auf das Problem mit Viewstate-Decodern könnte der Viewstatus verschlüsselt sein. Überprüfen Sie diesen Beitrag mit Kommentaren/Links: http://www.testingreflections.com/node/view/3424.
Update: versuchen Sie es aus vollständig auf dem Seitenelement in der web.config drehen:
<pages ... viewStateEncryptionMode="Never" ... />
Ansicht der Ansichtszustand Abschnitt in diesem Msdn doc How To: Configure MachineKey in ASP.NET 2.0
Ich habe die Einstellung 'machineKey' aus meiner web.config entfernt, aber ich bekomme immer noch "Es gab einen Fehler bei der Dekodierung der ViewState-Zeichenfolge: Die serialisierten Daten sind ungültig. " in meinem Decoder. – MStodd
@MStodd ein Update mit mehr Informationen hinzugefügt, überprüfen Sie es vollständig zu verwerfen, es ist verschlüsselt. – eglasius
Ich würde Trace nur hinzufügen = "true "zur Seitendirektive auf Ihrem lokalen Rechner. Der Kontrollbaumabschnitt zeigt Ihnen die Viewstate-Größe für jedes Steuerelement.
Fritz Onion's ViewState Decoder ist was Sie brauchen!
Ich wünschte, es würde funktionieren, aber ich bekomme weiter "Es gab einen Fehler beim Dekodieren der ViewState-Zeichenfolge: Die serialisierten Daten sind ungültig." in meinem Decoder. Das ist sogar, nachdem ich die Einstellung "machineKey" aus web.config entfernt habe. – MStodd
Gerade versucht v2.2 an diesem Datum, hat super geklappt! –
Welche Art von Kontrolle ist das? –
Mit diesem Steuerelement können Sie dynamische Suchkriterien für die Abfrage einer Datenbank erstellen. (Ich weiß nicht, ob das die Antwort war, nach der Sie gesucht haben) – MStodd