2009-10-09 12 views
35

In IIS 6 (und anderen Versionen zu afaik), gibt es eine Session Timeout Einstellung in Eigenschaften -> Home Directory Registerkarte -> Konfiguration -> Optionen Registerkarte. Sieht wie folgt aus:IIS Session Timeout vs ASP.NET Sitzung Timeout

picture of IIS dialog

Und in der ASP.NET web.config gibt es eine Session Einstellung, sieht wie folgt aus:

<system.web> 
    <sessionState timeout="120" /> 
    <!-- etc .. --> 
</system.web> 

Sind sie durch Zufall, zu tun? Setzen sie dasselbe oder andere Dinge?

Antwort

43

Sie sind nicht das Gleiche. Das IIS-Sitzungszeitlimit gilt für Clasic ASP-Seiten. Die web.config one ist für asp.net.

11

Die IIS-Einstellung hat keine Auswirkungen auf ASP.NET-Sitzungen, soweit mir bekannt ist - diese müssen in der web.config festgelegt werden.

3

Sie sollten auch das Leerlaufintervall für Anwendungspools berücksichtigen. Die Einstellungen für den Anwendungspool können durch Klicken auf Eigenschaften (IIS 6) oder Erweiterte Einstellungen (IIS 7.5) in dem Anwendungspool, dem die Anwendung zugewiesen ist, gefunden werden.

Stellen Sie sicher, dass dieser Wert mindestens auf das Zeitlimit Ihrer Sitzung gesetzt ist, um sicherzustellen, dass alle Sitzungen für die gesamte Sitzungszeitlimitdauer bestehen bleiben.

Der Grund, dass diese beiden Werte voneinander abhängig sind, liegt daran, dass die Sitzungsinformationen tatsächlich im Arbeitsprozess des Anwendungspools gespeichert werden. Das heißt, wenn der Worker-Prozess aus irgendeinem Grund beendet oder beendet wird, gehen die Sitzungsinformationen verloren.