SessionStateUtility.RaiseSessionEnd Method (IHttpSessionState, Object, EventArgs)

 

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 Shared Sub RaiseSessionEnd (
	session As IHttpSessionState,
	eventSource As Object,
	eventArgs As 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 Sub OnReleaseRequestState(ByVal [source] As Object, ByVal args As EventArgs)
    Dim app As HttpApplication = CType([source], HttpApplication)
    Dim context As HttpContext = app.Context
    Dim sessionID As String

    ' Read the session state from the context
    Dim stateProvider As HttpSessionStateContainer = _
       CType(SessionStateUtility.GetHttpSessionStateFromContext(context), HttpSessionStateContainer)

    ' 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 Then
        Try
            pHashtableLock.AcquireWriterLock(Int32.MaxValue)

            sessionID = pSessionIDManager.GetSessionID(context)
            pSessionItems.Remove(sessionID)
        Finally
            pHashtableLock.ReleaseWriterLock()
        End Try

        SessionStateUtility.RaiseSessionEnd(stateProvider, Me, EventArgs.Empty)
    End If

  SessionStateUtility.RemoveHttpSessionStateFromContext(context)
End Sub

.NET Framework
Available since 2.0
Return to top
Show: