SessionStateModule.End Event


Occurs when a session ends.

 event EventHandler ^ End;
public event EventHandler End;
member this.End : EventHandler 
Public Custom Event End As EventHandler 

Event Type


The following code example shows the contents of a Global.asax file with the Session_OnStart and Session_OnEnd events defined.

<script language="VB" runat="server">
Public Sub Session_OnStart()

End Sub

Public Sub Session_OnEnd()

End Sub
<script language="C#" runat="server">
public void Session_OnStart()


public void Session_OnEnd()



The End 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 End 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 End 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 End event handler associated with an HttpApplication instance that is currently in use.

For more information about the Global.asax file, see Global.asax Syntax.

Applies to

See also