2015-06-23 3 views
11

Ich weiß, dass es viele Fragen zu diesem Thema gibt und ich habe sie alle gelesen.Random Ungültiger Viewstate Error

Ich verwende IIS8, .Net 4.5.

Benutzer erhalten zufällig einen ungültigen Viewstate-Fehler, ich kann es nicht herausfinden. Sobald dies der Fall ist, können sie nur auf die Seite zurückkehren, indem sie den Browser-Cache leeren.

In meiner web.config Ich habe:

<system.web> 
<machineKey validationKey='....key here' decryptionKey='....decrypt key is valid here' validation='SHA1'/> 
    <!--<hostingEnvironment shadowCopyBinAssemblies="false" />--> 
    <authentication mode="None" /> 
    <compilation targetFramework="4.5.1" /> 
    <httpRuntime targetFramework="4.5.1" /> 
... 
</system.web> 

ich auf einem virtuellen privaten Server renne, und ich habe noch einen Ansichtszustand größer als 9 kb zu finden.

Mein Anwendungspool wird um 3:00 Uhr morgens einmal pro Tag neu gestartet.

Meine Seite verwendet Update-Panels, vielleicht klickt der Benutzer auf "Zurück"? Aber ich habe gesehen, dass es nur passiert, die Seite zu besuchen, ohne zurück zu klicken.

Eine Sache, die ich bemerkte, ist, dass ich 3 verschiedene Aufstellungsorte habe, die die gleiche Anwendungspoolidentität verwenden, aber die Anwendungspools sind getrennt. In machine.xml gibt es keine Maschinenschlüssel, sondern nur in meiner web.config.

+0

Beschreiben Sie die Verzeichnisstruktur Ihrer Anwendung. Haben Sie Unterverzeichnisse, die ihre eigene web.config haben? –

+0

Root-Verzeichnis enthält die web.config, Unterverzeichnisse nicht. – prospector

+2

** Ich habe sie alle gelesen ** - es ist besser zu sagen * was * du versucht hast? Dieses Problem riecht nach diesem Duft # 2 http://stackoverflow.com/a/577025/495455 –

Antwort

6

Ein paar Möglichkeiten zu untersuchen:, dann wird die Seite POSTed zurück an den Server, wo die neuen Werte

  1. aktualisieren Platten Formularfeldwerte ändern (Viewstate zu berechnen, welche sind das, was verwendet wird) Validierung fehlschlagen lassen Siehe this post

  2. Sie haben Caching aktiviert (führen Sie eine Spur von HTTP-Header - stellen Sie sicher, dass Sie nicht dev Tools geöffnet haben), die ungültige Viewstate verursacht w erzeugt werden/Update Dinge gummiert.

  3. Verwenden Sie Server.Execute überall? (siehe obigen Link für das gleiche)

  4. (weniger wahrscheinlich) Wird Ihr "Virtual Private Server" auf andere Hardware migriert (vielleicht ohne dass Sie es wissen)?