Frage

Wir haben eine ASP.Net 2.0 (VS2005) Anwendung, die fein lokal funktioniert, aber manchmal verliert Sitzungszustand, wenn auf dem Remote-Server bereitgestellt.

Ich vermute, dass ein mögliches Problem mit IIS die Anwendung recyling und damit der Benutzer den Sitzungszustand weggeblasen. Allerdings ist der Server Remote nicht unter unserer Kontrolle ... so können wir nicht einfach IIS Admin anwerfen und die Anwendungseinstellungen überprüfen. Eine weitere mögliche Ursache, natürlich, würde Kunden den ASP.Net Session-Cookie aus irgendeinem Grunde ablehnen.

(Wir haben ziemlich einen Fehler in unserem Code ausgeschlossen, weil es eine einfache Anwendung ist und es versucht, nie etwas von dem Session-Objekt zu entfernen, aber natürlich ... das sind berühmte letzte Worte, nicht wahr?)

Wie würden Sie diese programmatisch diagnostizieren?

Ich versuche meistens, um herauszufinden, wie das Problem zu diagnostizieren; wenn übereifrige Anwendung Recycling ist der Täter es sollte nicht allzu schwer sein, Code um.

Ich bin sicher, dass dies für ASP.Net Entwickler ein verbreitetes Problem ist.

War es hilfreich?

Lösung

Hier sind ein paar Links, die bei der Behebung dieser helfen kann, wenn Sie einige Einstellungen ändern können:

Protokollierung Arbeitsprozess-Recycling Ereignisse in IIS 6.0 (IIS 6.0)

Logging ASP.NET-Anwendung Shutdown Events

Andere Tipps

In der global.asax Application_Start Methode einig Logging-Code und Sie werden in der Lage zu sehen, wenn / falls Ihr Verlust durch Neustarten der Anwendung verursacht wird (oder zumindest, werden Sie sehen, wenn der Server gestartet wird, wenn Sie wissen, eine Sitzung zur gleichen Zeit verloren wurde, wissen Sie Ihren Täter).

Eine Abhilfe wäre aus proc Sitzungsstatus zu verwenden (wahrscheinlich SQL-basierte werden müßte, wenn Sie nicht die Kontrolle über den Server). Es dauert eine wenig zusätzliche Arbeit, um Ihren Code, weil alles, was Sie in Session speichern muss serialisierbar sein, aber löst das Problem der App neu gestartete Sitzung Verlust verursacht wird.

IIS für mehr als ein Worker-Thread (Webgarten) im Anwendungspool konfiguriert ist, kann Verlust des Sitzungszustandes führen.

Ich habe ein Szenario gefunden, wo Session verloren - In einer asp.net Seite, für eine Menge Textfeld Feld hat ungültige Zeichen und durch einen Session-Variable Abruf für andere purpose.After folgen die ungültige Nummer Posting durch Konvertieren Parsen. ToInt32 oder Doppel wirft eine erste Chance, aber Fehler in dieser Zeile nicht angezeigt, statt dass Session wegen nicht behandelte Ausnahme null ist, zeigt Fehler bei Sitzung Retrieval, also die Debugging-täuschen ...

TIPP: Testen Sie Ihr System it- DESTRUCTIVE zu scheitern .. genug Junk in keinem Zusammenhang Szenarien zu geben, Sie wären in der Lage, diese Maschine auf dem lokalen Code-Basis zu reproduzieren zu ...:)

Hoffe, es hilft, hydtechie

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top