How to access session variables in Session_End in global.asax?

  • Thread starter Thread starter Kim Bach Petersen
  • Start date Start date
K

Kim Bach Petersen

I would like to record user behavior data stored in session variables.

Since the data is modified throughout each session it seemed obvious to
store the data when the session terminates - using Session_End in
global.asax.

Problem is, apparently the session-object terminating cannot be accessed
from Session_End in global.asax!?

What's the meaning of Session_End if you don't know which session is
endning?

Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)
' Store data from
' System.Web.HttpContext.Current.Session("behavior")
' in database
End Sub

Kim :o)
 
Problem is, apparently the session-object terminating cannot be accessed
from Session_End in global.asax!?

What's the meaning of Session_End if you don't know which session is
endning?

What's the meaning of a brake pedal on a car if every car on the road has
one? The answer is, the brake pedal in the car you're driving is yours.
There is one Session per client. When Session_End is called, it is called
for that client. It is the brake pedal on that client's car. It can't
operate on any other client, any more than pressing your brake pedal can
slow down anyone else's car but yours.

--
HTH,
Kevin Spencer
..Net Developer
Microsoft MVP
I get paid good money to
solve puzzles for a living
 
Kevin Spencer skrev:
What's the meaning of a brake pedal on a car if every car on the road
has one? The answer is, the brake pedal in the car you're driving is
yours. There is one Session per client. When Session_End is called,
it is called for that client. It is the brake pedal on that client's
car. It can't operate on any other client, any more than pressing
your brake pedal can slow down anyone else's car but yours.

Clear enough, I got the concept of sessions, and of course Session_End is
called for an instance when it ends.

Still, can I access the session object from Session_End - and if yes, how?

I would like to acces session-object variables such as

System.Web.HttpContext.Current.Session.SessionId
System.Web.HttpContext.Current.Session("behavior")

but apparently I can't within Session_End?

Kim :o)
 
there is no valid System.Web.HttpContext.Current at session end because
there is no web request. just use the Session property of the global.asax
 
You can refer to the current Session as Session or this.Session. Session is
a member of the HttpApplication class from which the Global class is
derived.

--
HTH,
Kevin Spencer
..Net Developer
Microsoft MVP
I get paid good money to
solve puzzles for a living
 
Back
Top