SessionStateUtility.RaiseSessionEnd Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Führt das in der Datei Global.asax für die ASP.NET-Anwendung definierte Session_OnEnd-Ereignis aus.
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
Public Shared Sub RaiseSessionEnd (session As IHttpSessionState, eventSource As Object, eventArgs As EventArgs)
Parameter
- session
- IHttpSessionState
Die Instanz der IHttpSessionState-Implementierung für die beendete Sitzung.
- eventSource
- Object
Das Ereignisquellobjekt, das für das Session_OnEnd
-Ereignis bereitgestellt werden soll.
- eventArgs
- EventArgs
Das EventArgs-Objekt, das für das Session_OnEnd
-Ereignis bereitgestellt werden soll.
Beispiele
Das folgende Codebeispiel zeigt den Handler für das ReleaseRequestState Ereignis in einem benutzerdefinierten Sitzungszustandsmodul. Wenn die Sitzung abgebrochen wurde, führt das Modul das Session_OnEnd-Ereignis aus, das in der Datei Global.asax für die Anwendung mithilfe der RaiseSessionEnd -Methode definiert ist. Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die SessionStateUtility-Klasse bereitgestellt wird.
//
// 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 Sitzungsstatusmodul verwendet, um das Session_OnEnd-Ereignis auszuführen, das in der Datei Global.asax für eine ASP.NET-Anwendung definiert ist. Ein Sitzungsstatusmodul ruft die RaiseSessionEnd -Methode auf, wenn eine Sitzung abgebrochen wurde oder die Sitzung abläuft.