SessionStateUtility.RaiseSessionEnd(IHttpSessionState, Object, EventArgs) Methode

Definition

Führt das in der Datei Global.asax für die ASP.NET-Anwendung definierte Session_OnEnd-Ereignis aus.Executes the Session_OnEnd event defined in the Global.asax file for the ASP.NET application.

public:
 static void RaiseSessionEnd(System::Web::SessionState::IHttpSessionState ^ session, System::Object ^ eventSource, EventArgs ^ eventArgs);
public static void RaiseSessionEnd (System.Web.SessionState.IHttpSessionState session, object eventSource, EventArgs eventArgs);
static member RaiseSessionEnd : System.Web.SessionState.IHttpSessionState * obj * EventArgs -> unit

Parameter

session
IHttpSessionState

Die Instanz der IHttpSessionState-Implementierung für die beendete Sitzung.The IHttpSessionState implementation instance for the session that has ended.

eventSource
Object

Das Ereignisquellobjekt, das für das Session_OnEnd-Ereignis bereitgestellt werden soll.The event source object to supply to the Session_OnEnd event.

eventArgs
EventArgs

Das EventArgs-Objekt, das für das Session_OnEnd-Ereignis bereitgestellt werden soll.The EventArgs object to supply to the Session_OnEnd event.

Beispiele

Das folgende Codebeispiel zeigt den Handler für das ReleaseRequestState -Ereignis in einem benutzerdefinierten Sitzungs Zustands Modul.The following code example shows the handler for the ReleaseRequestState event in a custom session-state module. Wenn die Sitzung abgebrochen wurde, führt das Modul das Session_OnEnd -Ereignis, das in der Datei Global. asax für die Anwendung RaiseSessionEnd definiert ist, mithilfe der-Methode aus.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. Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die SessionStateUtility -Klasse bereitgestellt wird.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);
}
'
' 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

Hinweise

Die RaiseSessionEnd -Methode wird von einem Sitzungs Zustands Modul verwendet, um das Session_OnEnd -Ereignis auszuführen, das in der Datei Global. asax für eine ASP.NET-Anwendung definiert ist.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. Ein Sitzungs Zustands Modul ruft die RaiseSessionEnd -Methode auf, wenn eine Sitzung abgebrochen wurde, oder, wenn die Sitzung abläuft.A session-state module will call the RaiseSessionEnd method when a session has been abandoned, or if the session expires.

Gilt für: