SessionStateUtility.RaiseSessionEnd Method
.NET Framework 3.0
Executes the Session_OnEnd event defined in the Global.asax file for the ASP.NET application.
Namespace: System.Web.SessionState
Assembly: System.Web (in system.web.dll)
Assembly: System.Web (in system.web.dll)
public static void RaiseSessionEnd ( IHttpSessionState session, Object eventSource, EventArgs eventArgs )
public static void RaiseSessionEnd ( IHttpSessionState session, Object eventSource, EventArgs eventArgs )
public static function RaiseSessionEnd ( session : IHttpSessionState, eventSource : Object, eventArgs : EventArgs )
Not applicable.
Parameters
- session
The IHttpSessionState implementation instance for the session that has ended.
- eventSource
The event source object to supply to the Session_OnEnd event.
- eventArgs
The EventArgs object to supply to the Session_OnEnd event.
The following code example shows the handler for the ReleaseRequestState event in a custom session-state module. If the session has been abandoned, the module executes the Session_OnEnd event defined in the Global.asax file for the application using the RaiseSessionEnd method. This code example is part of a larger example provided for the SessionStateUtility class.
// // Event handler for HttpApplication.ReleaseRequestState // private void OnReleaseRequestState(object source, EventArgs args) { HttpApplication app = (HttpApplication)source; HttpContext context = app.Context; string sessionID; // Read the session state from the context HttpSessionStateContainer stateProvider = (HttpSessionStateContainer)(SessionStateUtility.GetHttpSessionStateFromContext(context)); // If Session.Abandon() was called, remove the session data from the local Hashtable // and execute the Session_OnEnd event from the Global.asax file. if (stateProvider.IsAbandoned) { try { pHashtableLock.AcquireWriterLock(Int32.MaxValue); sessionID = pSessionIDManager.GetSessionID(context); pSessionItems.Remove(sessionID); } finally { pHashtableLock.ReleaseWriterLock(); } SessionStateUtility.RaiseSessionEnd(stateProvider, this, EventArgs.Empty); } SessionStateUtility.RemoveHttpSessionStateFromContext(context); }