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.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft