Cómo: Implementar y provocar eventos personalizados de supervisión de estado de ASP.NET

Actualización: noviembre 2007

En el ejemplo de esta sección se muestra cómo provocar eventos personalizados de supervisión de estado de ASP.NET. Cuando se agrega un evento personalizado a la aplicación, se deben considerar los siguientes puntos:

  • Cómo establecer el ámbito para el evento de supervisión de estado. Si está previsto que el evento se produzca en todas las aplicaciones de un servidor, debe configurarlo para que tenga un ámbito común a todo el equipo. La forma más recomendada para ello, como se muestra en el ejemplo, es la creación de un módulo HTTP que provoque el evento personalizado. A continuación, instale el módulo en el nivel de equipo. Se llama al módulo en todas las aplicaciones del equipo en el que está instalado.

  • Cuándo provocar un evento de supervisión de estado. Se pueden provocar eventos de supervisión de estado en cualquier momento durante el procesamiento de solicitudes. Los momentos habituales para provocar un evento WebRequestEvent personalizado son en el evento BeginRequest o EndRequest del sistema.

En el ejemplo se muestran las siguientes funciones:

  • Generar un módulo HTTP para provocar eventos personalizados de supervisión de estado.

  • Configurar la aplicación para registrar eventos mediante la clase EventLogWebEventProvider estándar.

  • Registrar la información del evento utilizando la clase EventLogWebEventProvider estándar.

Los requisitos para ejecutar este ejemplo son:

Para generar el módulo HTTP

  • Coloque el código fuente de Ejemplo de inicio de eventos personalizados de supervisión de estado de ASP.NET en el directorio App_Code de la aplicación ASP.NET en un archivo denominado SampleModule.vb o SampleModule.cs.

    Nota:

    Si ya hay código fuente en este directorio, debe agregar la versión del proveedor de eventos personalizados que esté escrita en el mismo lenguaje que el código del directorio.

    ASP.NET compilará el código del proveedor de eventos personalizados cuando se solicite una página en la aplicación. Para obtener más información, vea Carpetas de código compartido en sitios Web ASP.NET.

    O bien

  • Compile el proveedor de eventos personalizados como una biblioteca y colóquela en el directorio Bin de la aplicación ASP.NET, o asigne al ensamblado un nombre seguro y colóquelo en la caché de ensamblados global (GAC).

    En el ejemplo de comando siguiente se muestra cómo se puede compilar el ejemplo mediante el compilador de línea de comandos.

    vbc /out:<example_name>.dll /t:library <example_name>.vb /r:System.Web.dll /r:System.Configuration.dll /r:<required namespace>
    
    csc /out:<example_name>.dll /t:library <example_name>.cs /r:System.Web.dll /r:System.Configuration.dll  /r:<required namespace>
    
    Nota:

    Si no puede ejecutar el comando del compilador, debe agregar la ruta de acceso de la instalación de .NET Framework a la variable PATH de Windows antes de ejecutarlo. En Windows, haga clic con el botón secundario del mouse en Mi PC, haga clic en Propiedades, haga clic en la ficha Avanzadas y, a continuación, haga clic en el botón Variables de entorno. En la lista Variables del sistema, haga doble clic en la variable Path. En el cuadro de texto Valor de variable, agregue un punto y coma (;) al final de los valores existentes en el cuadro de texto y, a continuación, escriba la ruta de acceso a la instalación de .NET Framework. Generalmente, .NET Framework está instalado en la carpeta de instalación de Windows, en \Microsoft.NET\Framework\númeroDeVersión.

Para configurar la aplicación ASP.NET que se va a utilizar en el ejemplo

  1. Si ya existe un archivo denominado Web.config en la carpeta raíz de la aplicación ASP.NET, ábralo. De lo contrario, cree un archivo de texto denominado Web.config y copie el texto siguiente:

    <?xml version="1.0"?>
    <configuration xmlns="https://schemas.microsoft.com/.NetConfiguration/v2.0">
      <system.web>
      </system.web>
    </configuration>
    
  2. En las etiquetas system.web, agregue los elementos httpModules y Elemento healthMonitoring (esquema de configuración de ASP.NET).

    <httpModules>
      <add name="Raising Custom Web Events" 
        type="Samples.AspNet.Management.CustomWebEvents" 
      />
    </httpModules>
    <healthMonitoring 
      heartbeatInterval="0" 
      enabled="true">
      <eventMappings>
        <add name="SampleWebRequestEvent" 
          type="Samples.AspNet.Management.SampleWebRequestEvent" 
        />
      </eventMappings>
      <profiles>
        <add name="Custom" 
          minInstances="1" 
          maxLimit="Infinite" 
          minInterval="00:00:00" 
        />
      </profiles>
      <rules>
        <clear />
          <add name="Custom Web Request Event" 
            eventName="SampleWebRequestEvent"
            provider="EventLogProvider" 
            profile="Custom" 
         />
      </rules>
    </healthMonitoring>
    

    El atributo type sólo puede mostrar el nombre de clase, como en el ejemplo de código anterior, o un nombre de tipo completo, como en el ejemplo siguiente:

    type="Samples.AspNet.Management.SampleWebRequestEvent,
    Sample.SampleModule,Version=1.0.0.0,Culture=neutral, 
    PublicKeyToken=xxxxxxxxxxxx"
    
    Nota:

    Solamente se requiere el nombre de tipo completo si se ha instalado la clase en la GAC o en el directorio Bin.

Para probar el evento Web personalizado

  1. Ejecute el Visor de eventos de Windows en el servidor en el que se ejecuta la aplicación Web. Para ello, haga clic en Inicio, y en Ejecutar, escriba eventvwr en el cuadro de diálogo Ejecutar y, a continuación, haga clic en Aceptar.

  2. En el árbol de registro de eventos del Visor de eventos, haga clic en Aplicación.

  3. Actualice la vista del registro de la aplicación haciendo clic en Acción y, a continuación, en Actualizar.

    Tome nota de la fecha, hora y nombre del evento más reciente. Esta información la utilizará posteriormente para comprobar que se ha provocado el evento personalizado.

  4. En el explorador, solicite cualquier página de la aplicación Web.

    Para utilizar el evento personalizado en la aplicación, ejecute una página de la aplicación en el explorador. A continuación, puede examinar los resultados creados por el evento personalizado.

  5. Actualice de nuevo el registro de la aplicación y compruebe que se ha registrado la información de evento de estado emitida por el evento personalizado.

Vea también

Tareas

Ejemplo de inicio de eventos personalizados de supervisión de estado de ASP.NET

Conceptos

Información general sobre la supervisión de estado en ASP.NET

Referencia

Elemento healthMonitoring (esquema de configuración de ASP.NET)

EventLogWebEventProvider

Otros recursos

Extender el procesamiento en ASP.NET con módulos HTTP