Export (0) Print
Expand All

SessionStateUtility.RaiseSessionEnd Method

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)

public static void RaiseSessionEnd(
	IHttpSessionState session,
	Object eventSource,
	EventArgs eventArgs
)

Parameters

session
Type: System.Web.SessionState.IHttpSessionState

The IHttpSessionState implementation instance for the session that has ended.

eventSource
Type: System.Object

The event source object to supply to the Session_OnEnd event.

eventArgs
Type: System.EventArgs

The EventArgs object to supply to the Session_OnEnd event.

The RaiseSessionEnd method is used by a session-state module to execute the Session_OnEnd event defined in the Global.asax file for an ASP.NET application. A session-state module will call the RaiseSessionEnd method when a session has been abandoned, or if the session expires.

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);
}

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0
Show:
© 2015 Microsoft