Frage

Angenommen, Sie haben eine aspx Seite haben, die nicht auf Sitzung nicht verlassen, sondern auf Ansichtszustand für persistance zwischen Postbacks angewiesen ist.

Wenn ein Benutzer diese Seite zugreift, und lässt für eine lange Mittagessen wird noch gültig sein Ansichtszustand, wenn er zurückkommt?

War es hilfreich?

Lösung

Nein Viewstate wird als Teil des Postback-Prozesses gehalten. Sie können jedoch Überschreibung der SavePageStateToPersistenceMedium Seite () der Klasse und LoadPageStateFromPersistenceMedium (), dieses Verhalten zu implementieren, falls gewünscht. Weitere Informationen finden Sie die ASP.NET Viewstate zu verstehen.

Beachten Sie, dass Seite Viewstate in der Session gespeichert ist, so dass, wenn Ihre Session abgelaufen ist, wird der Viewstate verloren. Ich würde nicht sagen, dass dies Viewstate Ablaufen ist, aber ja, es wird nach dem Session-Timeout zerstört werden.

Andere Tipps

Viewstate selbst nicht abläuft. Da es in einer Form geschrieben zurück, kann es jederzeit wieder hergestellt werden.

auf MSDN Laut:“ .. es. möglich ist Ansichtszustand verfallen, wenn eine Seite nicht zurück in der Sitzung Ablaufzeit “gebucht wird. Also, in einer Runde über die Art und Weise, kann es erlischt, wenn die Sitzung der Fall ist, aber Ansichtszustand nicht direkt ab. Da Sie nicht den Sitzungszustand sowieso verwenden, müssen Sie sich nicht über impliziten Ablauf sorgen.

Beachten Sie, dass ich nicht gesagt hat, es abgelaufen. Das war MS, die ich in ihrem eigenen Artikel zitiert Titel Controlling Viewstate

Viewstate nicht abläuft.

Alle Ansichtszustand Daten werden auf dem Client gespeichert und werden an den Server gesendet zurück, wenn der Benutzer ein Postback ausgeführt wird.

Das hat einige sehr interessante Implikationen und ist sehr gründlich erklärt hier .

Auch als gotcha, standardmäßig ASP.NET verschlüsselt Viewstate mit einem automatisch generierten Schlüssel. Dies kann mit dem MachineKey Elemente in der web.congif Datei überschrieben werden. Auch wenn Viewstate nicht abläuft, kann es ungültig werden, wenn ein anderer automatisch generierte Schlüssel verwendet wird Viewstate, wie nach einem IIS-Reset zu entschlüsseln, eine Anwendung Umschichtung oder einen anderen Server in einer Web-Farm schlagen. Wenn Sie auf Speichern Ansichtszustand für längere Zeit planen, achten Sie auf, wie es verschlüsselt / entschlüsselt.

http://msdn.microsoft.com/en-us/library/ ms998288.aspx

Ja, läuft Viewstate unter bestimmten Bedingungen Zum Beispiel, wenn Sie iframe verwenden: s., Oder wenn Sie mit regelmäßigen Postbacks Upkeeping „live“ Verbindung zum Server. Dann sollten Sie diese Option untersuchen: <sessionPageState historySize="9"/>, die eigentlich schwer Codes, wie viele „Postbacks Ergebnisse“ in der Session gespeichert werden (wenn SessionPageStatePerster verwendet wird). Jedes Postback speichert es ist Viewstate Ende der Queue in Session [ „__ VIEWSTATEQUEUE“] und löscht ViewStates, die „zu alt“ sind. Und wie denken Sie SessionPageStatePerster entscheidet, welche ViewStates zu alt sind .. durch eine willkürliche History-Konstante in web.config Konfiguration .. Omg! Es hat mir auch immer, dieses Problem zu finden ... Mein Hass gegen asp.net Programmierung ist unbeschreiblich jetzt .. grrr ...

Viewstate läuft nicht ab, solange sie noch auf der Seite sind, wird es immer noch da und funktionsfähig sein.

Der Viewstate wird von Posten zu Posten bestehen bleiben. Es ist eigentlich in einem versteckten Bereich auf dem Formular gespeichert, so dass es auf den Server zurück die ganze Zeit POSTed wird.

Solange Sie nicht auf der Session setzen, sollten Sie keine Probleme haben, Seitenzustand wieder aufzubauen. Es ist einfach, Ihre Seite des Staates Code testen, ob Sie aber wollen: nur geben Sie Ihre Sitzung nach 60 Sekunden in Ihrer web.config abzulaufen dann Ihre Seite laden, ein wenig mehr als eine Minute warten (surfen über zu Stack-Überlauf und beantworten einige Fragen) und klicken Sie dann auf eine Schaltfläche auf Ihrer Seite.

Leider diesen alten Thread wieder zu erleben, aber neue Informationen verfügbar:

Ja, ViewStates verfallen . Ich komme von 19 Stunden untersucht, um ein Problem des ViewStates seine Werte zwischen langen Zeitintervall Postbacks zu verlieren. Es dauerte eine Weile, Lesen MSDN Dokumente und Antworten Stackoverflow sagen, es ist im Grunde unmöglich war, geschehen, wenn eine benutzerdefinierte Viewstate Speicherimplementierung eingesetzt wurde, was, jetzt weiß ich, es ist nicht wahr.

Mein Problem wurde statt in einer Sharepoint-2013-Umgebung. Der Service bekannt als Distributed Cache (auch bekannt als AppFabric ) funktioniert das Caching des Viewstate und hat eine Time to Live zu ihm verbunden ist. Sie können mehr Informationen finden Sie hier: http: // blogs .msdn.com / b / besidethepoint / Archiv / 2013/03/27 / AppFabric-Caching-and-Sharepoint-1.aspx

Die interessante Information kann in diesem Satz zu finden: "Seite Leistung zu verbessern, in Sharepoint 2013 beginnt Sharepoint Viewstate Daten serverseitige Caches, anstatt es hin und her, um Kunden zu übertragen."

Ich hoffe, diese Informationen jemanden so verzweifelt helfen, wie ich vor 19 Stunden betragen.

Viewstate wird in einem versteckten Bereich auf der Seite selbst gehalten. Solange der Benutzer die Seite hat, wird er die Viewstate hat. Aber wenn Ihre Anwendung automatisch den Benutzer aus nach einer gewissen Zeit anmeldet, noch die Viewstate hat, kann er nichts nützen.

In der Standardeinstellung ist Viewstate mit dem HTML-Inhalt als versteckter Eingang enthält. Das heißt, es wird nicht verfallen, sondern alles in Ansichtszustand muss vom Browser des Benutzers geladen werden. Da das ist normalerweise der langsamste Teil der Verbindung in einem öffentlichen Ort, eine Menge Sachen in Ansichtszustand setzen kann schnell zu Ihrer Seite machen scheint sehr langsam.

Die kurze Antwort lautet: no.

Die längere Antwort ist: Es hängt davon ab, Implementierung von Viewstate Lagerung. Sie können benutzerdefinierte Implementierung von Viewstate bereitzustellen, die nach bestimmten Zeitspanne ablaufen könnten. Zum Beispiel könnten Sie Viewstate in der Datenbank oder auf der Festplatte speichern und nur einen Hinweis auf den gespeicherten Wert in einem versteckten Feld schicken. Dann können Sie Batch-Verarbeitung verwenden, um veraltete Daten Viewstate zu entfernen oder Ablauf auf Anfrage durchführen.

Nein Viewstate doesnot expires.After andere Seite umleitet dann Wert Anzeigestatus verloren oder Ansichtszustand verfallen. Weitere Einzelheiten http: //www.c-sharpcorner .com / Upload / 78d182 / Asp-Net-State-Management-Techniken /

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top