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

  • Thread starter Kim Bach Petersen
  • 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 :eek:)
 
K

Kevin Spencer

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
 
K

Kim Bach Petersen

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 :eek:)
 
B

bruce barker

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
 
K

Kevin Spencer

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
 
Joined
Aug 3, 2011
Messages
1
Reaction score
0
Before you call session.Abandon save any data that you will want to access in
Session_End in local variables then after session.Abandon you can declare session variables with the local variable values and you will be able to access them in Session_End

JamesJM
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,228
Members
46,818
Latest member
SapanaCarpetStudio

Latest Threads

Top