Share via


Como: Implementar e disparar Custom ASP.NET integridade Monitoring Events

O exemplo na seção ilustra como disparar eventos de monitoração de integridade personalizados ASP.NET.Quando você adiciona um evento personalizado à sua aplicação, você deve considerar os seguintes pontos:

  • Informações sobre como definir o escopo para eventos de monitoração de integridade.Se o evento se destina a ser disparado em todos os aplicativos em um servidor, você deve configurar o evento para ter escopo de máquina grande.Uma maneira preferida para fazer isso, como mostra este exemplo, é criar um módulo HTTP que dispara o evento personalizado.Você instala o módulo no nível da máquina.O módulo é chamado em todos os aplicativos no computador onde ele está instalado.

  • Quando disparar um evento de monitoração de integridade.Você pode disparar eventos de monitoração de integridade a qualquer momento durante processamento de solicitações.Tempos típicos para disparar um personalizado WebRequestEvent estão no evento de sistema BeginRequest ou no evento EndRequest.

O exemplo demonstra os seguintes recursos:

  • Criando um módulo HTTP para disparar eventos de monitoração de integridade personalizados.

  • Configurando a aplicação para eventos de log usando o padrão EventLogWebEventProvider.

  • Informações de registro de eventos utilizando o padrão EventLogWebEventProvider.

Executar o exemplo requer o seguinte:

Para criar o módulo HTTP

  • Coloque o código de Exemplo de levantamento de eventos de monitoração de integridade ASP.NET personalizados no diretório App_Code do seu aplicativo ASP.NET em um arquivo nomeado SampleModule.vb ou SampleModule.cs.

    Observação:

    Se você já tiver código-fonte no Diretório App_Code do seu aplicativo, você deve adicionar a versão do provedor do evento personalizado que está escrito na mesmo linguagem que o código existente no Diretório.

    ASP.NET irá compilar o código do provedor do evento personalizado quando uma página em seu aplicativo for solicitada.Para obter mais informações, consulte Pastas de código compartilhado em sites da Web ASP.NET.

    -ou-

  • Compile o provedor de evento personalizado como uma biblioteca e coloque a biblioteca em seu diretório de bandeja do aplicativo ASP.NET ou nomeie o assembly e coloque-o no cache global de assemblies (GAC).

    O exemplo de comando a seguir mostra como você pode compilar o exemplo usando o compilador de linha de comando.

    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>
    
    Observação:

    Se você não pode executar o comando compilador, você deve adicionar o caminho de instalação do .NET estrutura para o Windows PATH variável antes de executar o comando. No Windows, clique com o botão direito do mouse My Computer, clique em Properties, clique na guia Advanced e, em seguida, clique no botão Environment Variables.Na lista Variáveis do sistema, clique duas vezes na variável Path.Na caixa de texto Variable value, adicione um ponto-e-vírgula (;) até o final dos valores existentes na caixa de texto e digite o caminho da instalação do .NET Framework.The .NET Framework is usually installed in the Windows installation folder at \Microsoft.NET\Framework\versionNumber.

Para configurar o aplicativo ASP.NET para usar o exemplo

  1. Se um arquivo denominado Web.config já existe na pasta raiz do seu aplicativo ASP.NET, abra-o.Caso contrário, crie um arquivo de texto chamado Web.config e copie no seguinte texto:

    <?xml version="1.0"?>
    <configuration xmlns="https://schemas.microsoft.com/.NetConfiguration/v2.0">
      <system.web>
      </system.web>
    </configuration>
    
  2. Dentro das tags system.web, adicione o elemento httpModules e o elemento <healthMonitoring> Element.

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

    O atributo type pode listar apenas o nome da clase como ele faz no exemplo de código precedente, ou pode listar um tipo totalmente qualificado, como no exemplo seguinte:

    type="Samples.AspNet.Management.SampleWebRequestEvent,
    Sample.SampleModule,Version=1.0.0.0,Culture=neutral, 
    PublicKeyToken=xxxxxxxxxxxx"
    
    Observação:

    O tipo totalmente qualificado é necessário somente se a classe tiver sido instalada no GAC ou no diretório bandeja.

Para testar o evento Web personalizado

  1. Execute o visualisador de Eventos do Windows no servidor onde seu aplicativo da Web executa.Para fazer isso, clique em Start, clique Run, digite eventvwr na caixa de diálogo Run, e clique OK.

  2. Na árvore do log de eventos do Visualizador de eventos, clique em Application.

  3. Atualize a exibição do log do aplicativo, clicando em Action e em seguida, clicando em Refresh.

    Tome nota da data, hora e nome do evento mais recente.Você usará isso posteriormente para verificar que o evento personalizado foi disparado.

  4. No seu navegador, solicite qualquer página do aplicativo da Web.

    Para fazer uso do evento personalizado em seu aplicativo, você executa uma página do aplicativo em um navegador.Você pode então examinar os resultados criados pelo evento personalizado.

  5. Atualize o log do aplicativo novamente e verifique as informações do evento de integridade emitido pelo evento personalizado que foi registrado.

Consulte também

Tarefas

Exemplo de levantamento de eventos de monitoração de integridade ASP.NET personalizados

Conceitos

Visão Geral do Monitoramento da Integridade do ASP.NET

Referência

<healthMonitoring> Element

EventLogWebEventProvider

Outros recursos

Estendendo o Processamento ASP.NET com Módulos HTTP