6 Stimmen

Sitzungszeitüberschreitung in IIS 7

Ich möchte asp.net-Webanwendungen in IIS 7.0 (Windows Server 2008) hosten.

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

Gracias

10voto

Musikero31 Punkte 2969

Sie können die Zeitüberschreitung Ihrer Verbindung in diesen 2 Bereichen überprüfen. enter image description here

enter image description here

OR

Advanced settings

1 Stimmen

Ich glaube, Sitzungs-Timeout und Verbindungs-Timeout sind zwei verschiedene Dinge, aber gut zu wissen.

7voto

Michael Merrell Punkte 986

Überprüfen Sie das Windows-Ereignisprotokoll, um sicherzustellen, dass der Worker-Prozess nicht zum Recyceln gezwungen wird.

Möglicherweise gibt es etwas in Ihrem Code, der den Worker-Prozess dazu veranlasst, sich selbst zum Recyceln zu zwingen, wobei in diesem Fall, wenn die Sitzung inProc gespeichert wird, alle Sitzungswerte, die er hält, verloren gehen.

6voto

Stephen Binns Punkte 775

Klingt so, als ob die Sitzungszeitüberschreitung in der web.config nicht korrekt eingestellt ist. Sie könnten etwas wie folgt versuchen:

<system.web>
    <sessionState timeout="2" />

um die Zeitüberschreitung auf 2 Minuten zu setzen

http://msdn.microsoft.com/en-us/library/h6bb9cz9(vs.71).aspx

4voto

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

Überprüfen Sie das Windows-Ereignisprotokoll, um sicherzustellen, dass der Worker-Prozess nicht zum Recyceln gezwungen wird.

Möglicherweise gibt es etwas in Ihrem Code, das den Worker-Prozess dazu veranlasst zwingt, sich zu rezyklieren. In diesem Fall verliert er beim Speichern der Sitzung inProc gespeichert wird, verliert er alle Sitzungswerte, die er hält.

Schauen Sie in der Ereignisanzeige unter "Windows Logs/System" nach einem "WAS"-Quellereignis, das eine Beschreibung wie folgt enthält: "Ein Arbeitsprozess mit der Prozess-ID '2980', der den Anwendungspool 'SIAC' bedient, wurde aufgrund von Inaktivität heruntergefahren. Die Timeout-Konfiguration für den Anwendungspool wurde auf 20 Minuten gesetzt. Ein neuer Worker-Prozess wird bei Bedarf gestartet." Dies ist das Symptom, nach dem Sie suchen.

Ereignisanzeige mit dem WAS-Ereignis

Ich hoffe, das hilft.

1voto

VBWebProfi Punkte 199

Hatte fast das gleiche Problem mit HTTP-Handler in C # mit SessionState geschrieben. Scheint die Eigenschaft IsReusable sollte falsch sein, sonst war ich in das Problem der Sitzung lose laufen.

Gracias Mmerrell für seine Antwort, die mich auf den richtigen Weg gebracht hat.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X