Vergewissern Sie sich, einen sessionState timeout
Wert, entspricht Ihrer forms timeout
:
<system.web>
<authentication mode="Forms">
<forms loginUrl="~/Account/Login"
name=".ASPXAUTH"
timeout="300"
slidingExpiration="true" />
</authentication>
<sessionState timeout="300" mode="InProc" />
</system.web>
Sie müssen auch die Idle Time-out
Parameter Ihrer Anwendung Pool auf die gewünschte Authentifizierung Timeout ändern, um die Application Pool zu vermeiden, zu früh zu recyceln und Verliere daher deine Sitzungen. Anwendungspools - - Erweiterte Einstellungen des Anwendungspools in Frage
IIS:
Dieser Parameter kann in gefunden werden.
Referenzen:
Wenn Sie (*) diesen Parameter nicht geändert werden soll, ist eine Lösung, die StateServer
Modus der Session zu verwenden, Zustand. Dieser Modus verwendet einen Dienst zum Speichern der Sitzung anstelle des Speichers mit dem Modus In-Process
. Es hat den Vorteil, dass die Sitzung nicht verloren geht, wenn der Anwendungspool wiederverwendet wird. Es ist auch sehr einfach zu konfigurieren:
<system.web>
<sessionState mode="StateServer"
stateConnectionString="tcpip=loopback:42424"
cookieless="false"
timeout="300" />
</system.web>
(*) 5 Minuten ist sehr niedrig. Der Standardwert ist 20 Minuten. Ich rate daher, es mindestens auf den Standardwert einzustellen, wenn Sie den StateServer
Modus verwenden.
Referenz:
Ist es nicht, weil Ihr 'session timeout' einen niedrigen Wert hat? – krlzlx
das sind Minuten. also sollte es in 300 Minuten ablaufen, aber es läuft in 5. –
Ich spreche nicht über die 'Forms Timeout', sondern die' SessionState Timeout' – krlzlx