Forums Neueste Beiträge
 

SQL Server Exception löscht alle Session-Variable

02/06/2008 - 13:27 von Calle Manthey | Report spam
Hi,

ich arbeite mit einer asp.net 2 Applikation.
In der Session weden natürlich div. Variable gehalten, die Auskunft über den
User,
seine Rechte an den Daten usw enthalten.
Wirft der SQL-Server eine Exception (diese wird in einem Alert angezeigt)
sind danach alle
Session-Varaiblen gelöscht. Die Session selbst ist noch da.

Der User denkt er könne weiterarbeiten. Aber spàtestens dann, wenn auf eine
benötigte
Session-Variable zugegriffen wird, die nicht mehr da ist, kracht es.

Fragen:
1. Warum löscht eine Exception des SQL Servers alle Session-Variablen?
2. Wie kann ich eine SQL Exception abfangen derart, dass danach zur
Login-Seite
verzweigt wird?

3. Gibt es Probleme wenn auf dem WebServer sowohl asp.net 1.1 als auch 2.0
Apps laufen?

Danke

Calle Manthey
 

Lesen sie die antworten

#1 Gerold Mittelstädt
02/06/2008 - 14:13 | Warnen spam
Hallo,

Calle Manthey schrieb:
ich arbeite mit einer asp.net 2 Applikation.
In der Session weden natürlich div. Variable gehalten, die Auskunft über den
User,
seine Rechte an den Daten usw enthalten.



Hast Du dir mal die ProfileProvider angeschaut?

Wirft der SQL-Server eine Exception (diese wird in einem Alert angezeigt)
sind danach alle
Session-Varaiblen gelöscht. Die Session selbst ist noch da.



Bist Du sicher, dass es noch die selbe Session ist?

Theoretich könnte der AppPool Recyceln. Die Login-Infos werden aber in
einem Cookie/URL gespeichert, sodass der User danach sofort wieder
eingeloggt wird. Die ursprüngliche Session ist dann allerdings samt
Daten weg.

Der User denkt er könne weiterarbeiten. Aber spàtestens dann, wenn auf eine
benötigte
Session-Variable zugegriffen wird, die nicht mehr da ist, kracht es.



Dann darfst Du deinen eigenen Daten nicht trauen und musst die abprüfen,
bevor Du sie verwendest und ggf. neu holen. Je nach Größe und
Besucherzahl sollten sowieso nicht allzugroße Datenmengen in der Session
gespeichert werden.

Fragen:
1. Warum löscht eine Exception des SQL Servers alle Session-Variablen?



Wie gesagt.. einziges was mir einfàllt ist ein recycelter
ApplicationPool. Protokollierung dafür muss ggf. erst eingerichtet
werden: http://support.microsoft.com/kb/332088/en-us

2. Wie kann ich eine SQL Exception abfangen derart, dass danach zur
Login-Seite
verzweigt wird?



FormsAuthentication.RedirectToLoginPage()

3. Gibt es Probleme wenn auf dem WebServer sowohl asp.net 1.1 als auch 2.0
Apps laufen?



Normal macht da nichts Pprobleme, solange jede Anwendung ihren eigenen
Pool hat.

Viele Grüße!

Ähnliche fragen