session-state

___ answer31462407 ___

Ich dachte, ich würde ein (längst überfälliges) Update veröffentlichen - es war definitiv die gespeicherte Prozedur, die das Problem am Ende verursacht, wie in meinem Update oben. Wenn Sie die gleichen Probleme haben, schlage ich vor, es komplett zu deaktivieren - aber es hat den Trick für uns gemacht.

    
___ qstnhdr ___ .Net seltsame Session Bug - Variablen verschwinden aufgrund neuer Sitzung während des Postbacks ___ qstntxt ___

Ich habe ein wirklich, wirklich seltsames Problem, von dem ich hoffe, dass jemand etwas Licht darauf werfen kann. Wir haben eine Form, die uns Probleme verursacht hat, und durch Debugging usw. wurde festgestellt, dass dies auf eine Session-Variable zurückzuführen war, die "zufällig" verschwand.

Wir wissen, dass es kein Code ist - um das zu eliminieren, haben wir eine wirklich einfache Form mit einem Buchstaben und einem Knopf geklopft. Wenn es sich beim Laden der Seite nicht um ein Postback handelt, legt es eine Sitzungsvariable fest, sagen Sie "myvalue" mit dem Datum und der Uhrzeit. Wenn der Benutzer auf die Schaltfläche klickt, wird die Sitzung für diese Variable überprüft und anschließend angezeigt, ob sie vorhanden war oder nicht. Es wird dann die Sitzung verlassen, damit die nächsten Läufe gelöscht werden (dies geschieht nicht in der oben beschriebenen Form - das ist nur zum Testen).

Allerdings werden 90 von 100 Fällen (um der Argumente willen) so gehandhabt, wie Sie es erwarten würden. Aber für diese 10, verstreut über den Test nach dem Zufallsprinzip - also keine bestimmten Zeitspannen oder Testwiederholungen - wird es berichten, dass die Variable verschwunden ist.

Jetzt habe ich bestätigt, dass dies zu 100% der Fall ist, weil die Sitzung sich in völlig zufälligen Intervallen neu startet. Beim ersten Laden der Seite gibt es an, dass IsNewSession true ist - was ich beim ersten Mal erwarten würde. Beim Postback ist es auf IsNewSession = false gesetzt - wieder, was ich erwarten würde, und meine Variable zu booten ist in Ort.

Wenn es jedoch schief geht, ist die erste Anfrage IsNewSession wahr, aber beim Postback wird sie wieder auf "True" gesetzt - ohne Variablen im Speicher.

Die Umgebung verwendet die AspState-Datenbank (SQL Server). Es gibt nichts Offensichtliches - und was noch schlimmer ist, ist die zufällige Natur des Problems. Timeouts sind praktisch eliminiert. Der einzige Unterschied besteht darin, dass sich diese in einer LOAD BALANCED-Umgebung auf 4 Servern befindet. Wir haben die Anwendungs-ID in IIS (7.5) überprüft und sie sind alle gleich - gleiche Maschinenschlüssel usw.

Hat jemand eine Idee, was hier vor sich geht? Es ist .Net 2 BTW, das könnte das Problem sein - Ich hoffe, es ist ein bekanntes Problem mit der Versionsverwaltung dieser Versionen, aber bis jetzt kann ich nichts finden, das die Ursache zeigen könnte.

Das Problem scheint nicht angezeigt zu werden, wenn InProc auf einem Server verwendet wird. Es scheint nur mit Sql Server zu passieren.

Vielen Dank im Voraus - wirklich jede Hilfe zu schätzen,

Prost, Tony

Aktualisierung:

Wir denken, wir haben das Problem gelöst. Die gespeicherte Prozedur DeleteExpiredSessions wird jede Minute ausgeführt. Dies ist die angepasste Version, die Microsoft in ihrem KB-Artikel Ссылка empfohlen hat. Dies wurde jede Minute live ausgeführt - also haben wir dies im Test repliziert (was auch Last ausgeglichen ist) und den Job so eingerichtet, dass er im selben Intervall läuft.

Das Gleiche ist im Test passiert. Indem Sie dies im Live deaktivieren, ist das Problem jetzt verschwunden.

Offensichtlich blockiert es entweder (was wir in den Protokollen oder dem Aktivitätsmonitor nicht sehen können) oder entfernt noch gültige Sitzungen.

Hat das schon mal jemand gesehen? Meine aktuelle Theorie ist, dass die Sitzung bei jedem Aufruf des Servers, auf dem Sie landen, initialisiert wird, aber dann bei der Postback-Umleitung zu einem anderen Server, aus welchem ​​Grund auch immer, wird die Sitzung als "ungültig" betrachtet und wiederverwendet.

    
___ tag123aspnet ___ ASP.NET ist ein Framework zur Entwicklung von Microsoft-Webanwendungen, mit dem Programmierer dynamische Websites, Webanwendungen und Webdienste erstellen können. Es ist nützlich, dieses Tag in Verbindung mit dem Typ des Projekttyps zu verwenden, z. [asp.net-mvc], [asp.net-webforms] oder [asp.net-web-api]. Verwenden Sie dieses Tag NICHT für Fragen zu ASP.NET Core - verwenden Sie stattdessen [asp.net-core]. ___ tag123c ___ C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die für die Erstellung einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert. ___ tag123session ___ Eine Sitzung bezieht sich auf alle Anforderungen, die ein einzelner Client an einen Server stellt. Eine Sitzung ist spezifisch für den Benutzer und für jeden Benutzer wird eine neue Sitzung erstellt, um alle Anfragen von diesem Benutzer zu verfolgen. ___ tag123sqlserver ___ Microsoft SQL Server ist ein relationales Datenbankverwaltungssystem (RDBMS). Verwenden Sie dieses Tag für alle SQL Server-Editionen, einschließlich Compact, Express, Azure, Fast-Track, APS (früher PDW) und Azure SQL DW. Verwenden Sie dieses Tag nicht für andere Arten von DBMS (MySQL, PostgreSQL, Oracle usw.). Verwenden Sie dieses Tag nicht für Probleme bei der Software- und mobilen Entwicklung, es sei denn, es steht in direktem Zusammenhang mit der Datenbank. ___ tag123essessionstate ___ Der Sitzungsstatus ermöglicht das Abrufen von Werten für einen bestimmten Benutzer, wenn dieser Benutzer durch eine Website navigiert. Es wird verwendet, um den Status während eines Besuchs innerhalb der Beschränkungen des zustandslosen HTTP-Protokolls aufrechtzuerhalten. Sitzungsstatus wird üblicherweise als Sitzung abgekürzt. ___ answer18969773 ___

Nur eine wilde Vermutung, aber überprüfen Sie die Systemuhr auf Ihren Servern und stellen Sie sicher, dass sie synchron sind und in genau derselben Zeitzone liegen (einschließlich der Sommerzeit-Einstellungen).

    
___
1
Antwort

Wert zu der in der Sitzung gespeicherten Liste hinzufügen und dann als Datenquelle für den Repeater verwenden

Ich habe zwei Repeater auf meiner Seite. Der erste Repeater verfügt über einen LinkButton mit einem Befehlsnamen und einem Commandarguement. Wenn die Linkschaltfläche angeklickt wird, soll der Wert von commandarguement in einer Session gespeiche...
22.09.2011, 13:18
3
Antworten

Sitzungs-ID-Cookie in gwt rpc

Angenommen, ich würde meinen eigenen Sitzungscode erstellen, was ist der richtige Weg, um einen eindeutigen und sicheren Sitzungs-ID-Cookie in Java zu generieren. Sollte ich nicht meine eigene rollen, sondern etwas verwenden, das bereits stan...
05.09.2009, 00:45
2
Antworten

rails 3, heroku, wie man Sitzungen benutzt

Ich habe eine großartige Antwort für die Einrichtung von Sitzungen für Schienen 3 gesehen ( Rails-Sitzungen aktuelle Praktiken ) Wir sammeln eine Reihe von Fragen vom Benutzer und ich möchte in der Sitzung eine Liste ihrer Antworten halten, b...
15.02.2011, 02:53
1
Antwort

JSF 2.0 partielles Speichern des Zustands scheint nicht zu funktionieren

Ich evaluiere die Möglichkeit, JSF in einer stark frequentierten Website zu verwenden. Mir wurde gesagt, dass in JSF 2.0 der Komponentenbaum nicht in der Sitzung gespeichert wird und dass nur Deltas gespeichert werden, sobald der Komponentenbaum...
08.12.2010, 18:00
1
Antwort

ASP.NET 5 (Core): Wie speichern Sie Objekte im Sitzungs-Cache (ISession)?

Ich schreibe eine ASP.NET 5 MVC 6 (Core) -Anwendung. Jetzt kam ich an einen Punkt, an dem ich ein Objekt im Session-Cache ( ISession ) speichern (setzen und abrufen) muss. Wie Sie vielleicht wissen, übernimmt die Set -Methode von ISessi...
14.03.2016, 16:49
2
Antworten

Freigabe des Sitzungsstatus zwischen zwei ASP.NET-Anwendungen mit SQL Server

Ich arbeite an einer Site, die eine Session zwischen einer CMS-Anwendung und einer Online-Store-Anwendung auf derselben Domain teilen muss, zB %Vor% und %Vor% Ich habe damit Fortschritte gemacht und es funktioniert auf meinem lokalen Bui...
08.03.2010, 16:23
2
Antworten

Persistente Sitzungen in Meteor

Einer der verwirrendsten Aspekte, die ich bei Meteor beobachtet habe, ist, dass Sitzungen bei jeder Aktualisierung gelöscht werden. Da es sich nicht um einen dauerhaften Speicher handelt, wo würde ich Dinge wie Benutzer-ID einfügen oder wo sind...
29.07.2012, 00:55
2
Antworten

request.getSession (false) gibt nach dem Aufruf von session.invalidate () keine Null zurück

Sollte eine Sitzung nicht ungültig werden, weil request.getSession(false) null zurückgibt? In meinem Logout-Servlet rufe ich an %Vor% und in meinem Login-Status-Filter rufe ich %Vor% Der Aufruf von getSession (false) gibt nie null zur...
28.01.2013, 07:33
2
Antworten

Android - Wie behandelt man onPause / onResume-Methoden richtig?

Ich habe eine App, die mit dem Abspielen von Sounds beginnt und das Gameplay in der onResume () -Methode startet / wieder aufnimmt, aber was ich merke ist, dass meine App die zuletzt ausgeführte Anwendung war, als ich das Telefon in den Standby-...
22.04.2010, 14:13
6
Antworten

Die ASP.NET-Sitzungs-ID wurde unter den Browser-Tabs geteilt

Ich habe kürzlich eine Website entwickelt, die asp.net-Webformulare verwendet, die in proc-Sitzungen verwendet werden, und mir ist aufgefallen, dass die Sitzungs-IDs unter den Browser-Tabs geteilt werden. Ich habe mich gefragt, was Sie für die f...
19.10.2010, 10:02