Condividi tramite


Procedura: creare gestori eventi a livello di applicazione ASP.NET

Aggiornamento: novembre 2007

In ASP.NET gli eventi dell'applicazione vengono associati automaticamente ai metodi di gestore eventi nel file Global.asax, utilizzando una convenzione di denominazione Application_event, ad esempio Application_BeginRequest e Application_Error. Per ulteriori informazioni, vedere Cenni preliminari sul ciclo di vita delle applicazioni ASP.NET per IIS 5.0 e 6.0.

In questo esempio di codice viene gestito l'evento Error a livello di applicazione e vengono scritte informazioni sugli errori nel log eventi di sistema. L'evento Error viene generato ogni volta che si verifica un errore di applicazione o di pagina non gestita.

Per creare un gestore eventi a livello di applicazione ASP.NET

  1. Se per il sito Web non esiste ancora un file Global.asax, crearne uno nella directory principale del sito.

  2. Creare un metodo di gestore eventi il cui nome segua il criterio Application_event. Ad esempio, per gestire l'evento Error di un'applicazione, creare un gestore denominato Application_Error che accetta un parametro Object e un parametro EventArgs.

Esempio

Nell'esempio di codice riportato di seguito viene illustrato un gestore nel file Global.asax per l'evento Error. Nell'esempio il gestore viene chiamato ogni volta che si verifica un'eccezione non gestita in qualsiasi punto dell'applicazione. Se un'eccezione viene rilevata in un blocco try/catch o da un evento Error di un oggetto della pagina, l'applicazione non genera l'errore Error.

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);
}

Il codice scrive una voce nel log eventi di sistema. Per prima viene verificato se nel log eventi esiste la voce ASPNETApplication e, se non esiste, viene creata. Viene quindi ricevuto il messaggio di errore associato all'errore mediante la chiamata del metodo GetLastError e infine viene scritto il messaggio di errore nel log.

Sicurezza

In questo esempio di codice l'applicazione deve disporre dell'autorizzazione per accedere al log eventi di sistema. Per ulteriori informazioni sull'utilizzo del log eventi di sistema, vedere Procedura: scrivere nel log eventi di un'applicazione.

Vedere anche

Concetti

Cenni preliminari sul ciclo di vita delle applicazioni ASP.NET per IIS 5.0 e 6.0

Altre risorse

Gestione degli errori nelle pagine e nelle applicazioni ASP.NET