Freigeben über


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

  1. Wenn auf der Webseite noch keine Global.asax-Datei vorhanden ist, erstellen Sie diese im Stammverzeichnis der Website.

  2. 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

Weitere Ressourcen

Fehlerbehandlung in ASP.NET-Seiten und -Anwendungen