Cómo: Crear controladores de eventos en las aplicaciones ASP.NET

Actualización: noviembre 2007

ASP.NET automáticamente enlaza eventos de aplicación a métodos controladores de eventos en el archivo Global.asax utilizando una convención de nomenclatura Application_event, como por ejemplo Application_BeginRequest y Application_Error. Para obtener más información, vea Información general sobre el ciclo de vida de una aplicación ASP.NET para IIS 5.0 y 6.0.

Este ejemplo de códigos controla el evento Error de nivel de aplicación y escribe la información del error en el registro de eventos del sistema. Se provoca un evento Error siempre que se produce un error de aplicación o de página no controlada.

Para crear un controlador de eventos en el nivel de aplicación Asp.NET

  1. Si su sitio Web todavía no tiene un archivo Global.asax, cree uno en la raíz del sitio.

  2. Cree un método controlador de eventos cuyo nombre siga el patrón Application_event. Por ejemplo, para controlar un evento de aplicación Error, cree un controlador llamado Application_Error que tome un parámetro Object y un parámetro EventArgs.

Ejemplo

El siguiente ejemplo de código muestra un controlador en el archivo Global.asax para el evento Error. El controlador en el ejemplo se llama siempre que se produzca una excepción no controlada en la aplicación. Cuando se detecta una excepción en un bloque try/catch o en el evento Error de un objeto de una página, la aplicación no provoca el error 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);
}

El código escribe una entrada en el registro de eventos del sistema. En primer lugar realiza una comprobación para determinar si existe la entrada del registro de eventos llamada ASPNETApplication; si no, el código la crea. El código obtiene el mensaje de error asociado con el error llamando al método GetLastError y luego escribe el mensaje de error en el registro.

Seguridad

Este ejemplo de código requiere que la aplicación tenga permiso de acceso al registro de eventos del sistema. Para obtener más información sobre el uso del registro de eventos del sistema, vea Cómo: Escribir el registro de eventos de una aplicación.

Vea también

Conceptos

Información general sobre el ciclo de vida de una aplicación ASP.NET para IIS 5.0 y 6.0

Otros recursos

Control de errores en aplicaciones y páginas ASP.NET