2009-06-04 9 views
4

Ich hostet ASP.net-Webanwendung in IIS 7.0 (Windows Server 2008) gerne.Sitzung Timeout in IIS 7

Ich konfigurierte den Sitzungsstatus als sessionstate mode = "inproc" timeout = 120. Sogar die Sitzung läuft innerhalb von 15 Sekunden ab. Was könnte das Problem sein?

Dank

Antwort

7

Überprüfen Sie das Windows-Ereignisprotokoll, um sicherzustellen, dass der Arbeitsprozess nicht zum erneuten Schreiben gezwungen wird.

Möglicherweise gibt es etwas in Ihrem Code, das dazu führt, dass sich der Arbeitsprozess zum Recylen zwingt. Wenn die Sitzung in Proc gespeichert wird, verliert sie alle Sitzungswerte, die sie enthält.

10

Sie können das Verbindungstimeout in diesen 2 Bereichen überprüfen. enter image description here

enter image description here

ODER

Advanced settings

+1

Ich denke, Session-Timeout und Verbindungs-Timeout sind zwei verschiedene Dinge, aber gut zu wissen. – Jerther

4

Mmerrell schrieb dies und ist der Schlüssel, den Ursprung des Problems zu finden:

das Windows-Ereignisprotokoll Überprüfen Sie, ob der Arbeiter, um sicherzustellen, Prozess ist nicht gezwungen zu recyle.

Möglicherweise gibt es etwas in Ihrem Code, der den Worker Process zu zwingt sich selbst zu recyle in dem Fall, wenn die Sitzung inProc gespeichert wird es alle Sitzungswerte verliert, die es hält.

Schauen Sie sich die Ereignisanzeige auf „Windows-Protokolle/System“, die Sie für eine Suche „WAR“ Source Ereignis, das eine Beschreibung wie enthält: mit Prozess-ID von ‚2980‘ für Anwendungspool „Ein Arbeitsprozess "SIAC" wurde aufgrund von Inaktivität heruntergefahren. Die Zeitlimitkonfiguration des Anwendungspools wurde auf 20 Minuten festgelegt. Ein neuer Arbeitsprozess wird bei Bedarf gestartet. " Das ist das Symptom, nach dem Sie suchen.

Event viewer with the WAS event

Hoffnung, das hilft.

1

Hatte fast das gleiche Problem mit HTTP-Handler in C# mit SessionState geschrieben. Scheint, dass die Eigenschaft IsReusable falsch sein sollte, sonst lief ich in dem Problem der Session los.

Danke Mmerrell für seine Antwort, die mich auf die richtige Spur gebracht hat.

0

Es gibt noch eine andere Sache zu überprüfen - App Pool Erweiterte Einstellungen - Virtual Memory Limit. Stellen Sie fest, ob es explizit festgelegt ist - da es automatisch recyceln kann, sobald das festgelegte Limit überschritten wird.Vor allem, wenn der Fehler in Ihrem Ereignisprotokoll angezeigt wird:

Ein Worker-Prozess mit der Prozess-ID '****', der den Anwendungspool 'your-app-pool-name' bereitstellt, hat eine Wiederverwendung angefordert, weil er den Wert erreicht hat virtuelles Speicherlimit.