Gewusst wie: Erstellen von ASP.NET-Ereignishandlern auf Anwendungsebene
Aktualisiert: November 2007
ASP.NET bindet Anwendungsereignisse automatisch an Ereignishandlermethoden in der Datei Global.asax. Dabei wird die Namenskonvention Application_event verwendet, beispielsweise Application_BeginRequest und Application_Error. Weitere Informationen finden Sie unter Übersicht über den Lebenszyklus von ASP.NET-Anwendungen für IIS 5.0 und 6.0.
In diesem Codebeispiel wird das Error-Ereignis auf Anwendungsebene behandelt, und Fehlerinformationen werden in das Systemereignisprotokoll geschrieben. Das Error-Ereignis wird immer dann ausgelöst, wenn ein Anwendungsfehler oder ein nicht behandelter Seitenfehler auftritt.
So erstellen Sie einen ASP.NET-Ereignishandler auf Anwendungsebene
Wenn auf der Webseite noch keine Global.asax-Datei vorhanden ist, erstellen Sie diese im Stammverzeichnis der Website.
Erstellen Sie eine Ereignishandlermethode, deren Name dem Muster Application_event folgt. Um z. B. ein Error-Ereignis einer Anwendung zu behandeln, erstellen Sie einen Handler mit dem Namen Application_Error, der einen Object-Parameter und einen EventArgs-Parameter akzeptiert.
Beispiel
Im folgenden Codebeispiel wird ein Handler in der Datei Global.asax für das Error-Ereignis veranschaulicht. Der Handler im Beispiel wird immer dann aufgerufen, wenn irgendwo in der Anwendung eine nicht behandelte Ausnahme auftritt. Wenn eine Ausnahme in einem try/catch-Block oder durch das Error-Ereignis eines Seitenobjekts abgefangen wird, löst die Anwendung nicht den Error-Fehler aus.
Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
' check to see if the ASPNETApplication log exists
If Not System.Diagnostics.EventLog. _
SourceExists("ASPNETApplication") Then
System.Diagnostics.EventLog. _
CreateEventSource("ASPNETApplication", "Application")
End If
System.Diagnostics.EventLog. _
WriteEntry("ASPNETApplication",
Server.GetLastError().Message)
End Sub
void Application_Error(Object sender, EventArgs e)
{
if(!System.Diagnostics.EventLog.SourceExists
("ASPNETApplication"))
{
System.Diagnostics.EventLog.CreateEventSource
("ASPNETApplication", "Application");
}
System.Diagnostics.EventLog.WriteEntry
("ASPNETApplication",
Server.GetLastError().Message);
}
Durch den Code wird ein Eintrag in das Systemereignisprotokoll geschrieben. Zuerst wird ermittelt, ob der Ereignisprotokolleintrag mit dem Namen ASPNETApplication vorhanden ist. Wenn nicht, wird er vom Code erstellt. Der Code ruft die mit dem Fehler verbundene Fehlermeldung durch Aufrufen der GetLastError-Methode ab und schreibt dann die Fehlermeldung in das Protokoll.
Sicherheit
Bei diesem Codebeispiel muss die Anwendung über die Berechtigung für den Zugriff auf das Systemereignisprotokoll verfügen. Weitere Informationen zum Verwenden des Systemereignisprotokolls finden Sie unter Gewusst wie: Schreiben in ein Anwendungsereignisprotokoll.
Siehe auch
Konzepte
Übersicht über den Lebenszyklus von ASP.NET-Anwendungen für IIS 5.0 und 6.0