Ich verwende eine ASP.NET-Website auf meiner Entwicklungsumgebung (.NET 2.0 unter Vista/IIS7). Die Session_Start-Methode in global.asax.cs protokolliert jeden Aufruf einer Datei (log4net). Die Session_End-Methode protokolliert auch jeden Anruf.Große Anzahl von Session_Start mit derselben Sitzungs-ID
Ich verwende den InProc-Sitzungsstatus und setze das Sitzungszeitlimit auf 5 Minuten (um Wartezeiten von 20 Minuten zu vermeiden).
Ich schlug die Website, warten Sie auf 5 Minuten Einheit Ich sehe die Session_End Protokollierung. Dann f5 ich die Webseite. Der Browser hat immer noch den Session-Cookie und sendet ihn an den Server. Session_Start wird aufgerufen und eine neue Sitzung wird mit derselben Sitzungs-ID erstellt (übrigens: Ich brauche dieselbe Sitzungs-ID, da sie zum Speichern von Daten in der Datenbank verwendet wird).
Ergebnis: Jedes Mal, wenn ich bei einer zuvor beendeten Sitzung F5 drücke, wird die Session_Start-Methode aufgerufen, die Anforderung wird ausgeführt und die Session_End-Methode wird sofort aufgerufen.
Wenn ich einen anderen Browser öffne, wird die Session_Start-Methode nur einmal aufgerufen. Nach 5 Minuten bewirkt die Session_End jedes F5, dass die Sequenz Session_Start/request/Session_End ausgeführt wird.
web.config entsprechender Bereich:
<system.web>
<compilation debug="true" />
<sessionState timeout="2" regenerateExpiredSessionId="false" />
</system.web>
Ich brauche Hilfe zu diesem gleichen Problem, aber auf Websites, in denen ich nicht mit der Sitzung durcheinander gebracht habe. Völlig zufällig wird die Website eine DB-Transaktion machen, die ich in Session_Start hunderte Male pro Tag für einen Benutzer mit einer Sitzungs-ID habe. Keine Warnung, zufällige Seiten betroffen und keine Antworten. –
Schauen Sie sich [diesen Link] an (http://stackoverflow.com/a/11375003/779408). Da gibt es eine echte Lösung. – breceivemail