Session_End Event does not Fire in OutProc Session Mode

Session_End is Fired when a user's session times out.

When ever the Webserver does not get any response for 20 min then by default the Session_end fires automatically.

Another important thing to mention in this topic here is the Session_end only fires incase of the Inproc session mode and not the Outproc session mode.

We can use the Session.Abandon to force this.

Remember the Session_End event will not fire in the case where the user closes the browser. HTTP is a stateless protocol. So there is no way for the server to understand that the browser has been closed.
 

Next Recommended Reading CustomError mode in web.config file