Klassisches ASP: Mehrere ASPSESSIONID in Cookies

9

Ich habe ein Problem mit einer klassischen ASP-Seite und ich kann es seit 3 ​​Tagen nicht mehr lösen.

Die Seite arbeitet mit Sessions - manchmal wird der ASPSESSIONID-Cookie in den Request.ServerVariables ("HTTP_COOKIE") zweimal gesetzt. Dies bewirkt, dass die ASP-Seite beim Aktualisieren der Seite zwischen den beiden Sitzungen springt.

Ich habe eine Testseite geschrieben, die die aktuelle SessionId, die Server Software und den HTTP_COOKIE Wert ausgibt.

Beispielausgabe:

Sitzungs-ID: 308542840

Sitzungszeitüberschreitung: 20 Minuten

Serversoftware: Microsoft-IIS / 6.0

HTTP_COOKIE: ASPSESSIONIDQCBATRAD = MBHHDGCBGGBJBMAEGLDAJLGF; ASPSESSIONIDQCCDTTCB = PGHPDGCBPLKALGGKIPOFIGDM

Warum gibt es zwei ASPSESSIONIDs? Wenn ich die Seite aktualisiere, gibt es zufällig eine der zwei Sitzungs-IDs aus.

Hier ist ein Screencast, der das Problem in IE9 zeigt: Ссылка

Dieser Fehler tritt häufig in ie8 und ie9 auf.

Machen Sie Folgendes, um das Problem neu zu erstellen:

  1. Schließen Sie ganz IE8 oder IE9
  2. Starten Sie IE8 oder IE9 und öffnen Sie Ссылка
  3. Unmittelbar nachdem die Seite geladen wurde, aktualisieren Sie die Seite mehrmals.

Wenn Sie diese Schritte wiederholen, wird das HTTP_COOKIE zufällig (nicht immer) mit zwei verschiedenen ASPSESSIONIDs gefüllt.

Die ASP-Testdatei gibt nur die mentIod-Werte aus, nichts anderes passiert im Quellcode.

Dies ist der Code der asp-Testdatei:

%Vor%

Wie kann ich mehrere ASPSESSIONIds in Cookies vermeiden?

Danke für jede Hilfe!

    
swervedriver 08.10.2012, 14:33
quelle

6 Antworten

4

Ich konnte diese Cookies mit Javascript entfernen.

Fügen Sie am Ende der Anmeldeseite das nächste Skript hinzu. Dadurch werden alle "ASPSESSIONIDXXXXXXX" -Cookies entfernt, bevor sich der Benutzer auf der Website anmeldet:

%Vor%     
Anton Palyok 31.10.2013 15:00
quelle
1

Dieses Problem hat mich auch lange beschäftigt. Und ich kann es nicht lösen.

Es geht nicht um Browsergeschäfte. Mein Chrome, Firefox, IE haben alle dieses Problem.

Manchmal kann ich 20+ ASPSESSIONIDXXXX-Cookies auf einer Seite sehen.

Schließlich muss ich JavaScript verwenden, um die alte ASPSESSIONID *** zu löschen und die neueste zu behalten.

%Vor%     
cuixiping 12.01.2013 19:30
quelle
1

Gehen Sie zur erweiterten Einstellung des Anwendungspools und legen Sie "Maximale Arbeitsprozesse" auf 1 fest.

    
stelios kaltsounis 05.02.2016 11:24
quelle
0

Vielleicht später, aber könnte nützlich sein, da es keine akzeptierte Antwort gibt.

Überprüfen Sie im Anwendungspool bei den Recyclingoptionen, ob Sie dies nicht tun Recycling deine Anwendung zu früh oder du wirst mit einem beendet ASPSESSIONIDXXXXXXX für jede neue Anwendung, die Sie respawnen.

Es gibt mehrere Recycling-Bedingungen. Ich habe "minimale Anzahl von Anfragen" versehentlich auf 1 gesetzt und habe eine ASPSESSIONID für jede Anfrage

    
Ernest Collection 15.11.2017 00:06
quelle
-1

Sie haben in Ihrer Sitzung des Benutzers einen Wert zugewiesen. Versuchen Sie, Ihre Sitzung wie folgt abzurufen und jedem Benutzer verschiedene eindeutige Werte zuzuweisen.

%Vor%     
polin 09.10.2012 08:51
quelle
-1

In der Datei global.asa:

%Vor%     
Ivan Correa 01.12.2015 12:25
quelle