When is Session_End() called in ASP.NET MVC?

Alex B picture Alex B · Mar 3, 2010 · Viewed 37.1k times · Source

I have configured my Web.Config file as follow in a ASP.NET MVC 2 project:

<sessionState mode="InProc" timeout="1"/>

And added the following in Global.asax.cs:

protected void Session_End(object sender, EventArgs e)
{
    System.Diagnostics.Debug.WriteLine("Session_End");
}

protected void Session_Start(object sender, EventArgs e)
{
    System.Diagnostics.Debug.WriteLine("Session_Start");
}

Session_Start() is called when a new user goes on the website. I would have expected Session_End() to be called after 1 minute of idle time, but it's not the case. Am I missing something?

Answer

Tam&#225;s Varga picture Tamás Varga · Apr 3, 2013

Remember this:

If you don't save anything into the session, the session_end will not fire. If you're saving data in the session in the first request, and calling abandon in the same request the session_end will also not fired.

Hope this helps!

T

btw: ASP.NET Session_End event not firing