Occurs when a session ends.
Assembly: System.Web (in System.Web.dll)
The event is raised at the end of a request when the Abandon method has been called or when the session has expired. A session expires when the number of minutes specified by the Timeout property passes without a request being made for the session.
The Session_OnEnd event is used to perform any cleanup work for a session such as disposing of resources used by the session.
You can specify a handler for the event by adding a public subroutine named Session_OnEnd to the Global.asax file.
The Session_OnEnd event is only supported when the session-state HttpSessionState.Mode property value is InProc, which is the default. If the session-state Mode is set to StateServer or SQLServer, then the Session_OnEnd event in the Global.asax file is ignored. If the session state Mode property value is Custom, then support for the Session_OnEnd event is determined by the custom session-state store provider.
Though the event is public, you can only handle it by adding an event handler in the Global.asax file. This restriction is implemented because HttpApplication instances are reused for performance. When a session expires, only the Session_OnEnd event specified in the Global.asax file is executed, to prevent code from calling an event handler associated with an HttpApplication instance that is currently in use.
For more information about the Global.asax file, see Global.asax Syntax.