WebManagementEvent Classe

Definição

Define a classe base para eventos que transportam informação de aplicação e processo.

public ref class WebManagementEvent : System::Web::Management::WebBaseEvent
public class WebManagementEvent : System.Web.Management.WebBaseEvent
type WebManagementEvent = class
    inherit WebBaseEvent
Public Class WebManagementEvent
Inherits WebBaseEvent
Herança
WebManagementEvent
Derivado

Exemplos

O exemplo seguinte mostra como implementar um evento personalizado derivando-o da WebManagementEvent classe.


using System;
using System.Text;
using System.Web;
using System.Web.Management;

namespace Samples.AspNet.Management
{
    // Implements a custom 
    // WebManagementEvent class. 
    public class SampleWebManagementEvent : 
        WebManagementEvent
    {
        private StringBuilder eventInfo;

        // Invoked in case of events 
        // identified only by their event code.
        public SampleWebManagementEvent(string msg, 
            object eventSource, int eventCode):
        base(msg, eventSource, eventCode)
        {
            // Perform custom initialization.
            eventInfo = new StringBuilder();
            eventInfo.Append(string.Format(
                "Event created at: ", 
                EventTime.ToString()));
        }

        // Invoked in case of events identified 
        // by their event code.and related 
        // event detailed code.
        public SampleWebManagementEvent(string msg, 
            object eventSource, int eventCode, 
            int eventDetailCode):
          base(msg, eventSource, 
            eventCode, eventDetailCode)
        {
            // Perform custom initialization.
            eventInfo = new StringBuilder();
            eventInfo.Append(string.Format(
                "Event created at: ", 
                EventTime.ToString()));
        }


        // Raises the SampleWebRequestEvent.
        public override void Raise()
        {
            // Perform custom processing. 
            eventInfo.Append(string.Format(
                "Event raised at: ", 
                EventTime.ToString()));
            // Raise the event.
            base.Raise();
        }

        // Obtains the current process information.
        public string GetProcessInfo()
        {
            StringBuilder tempPi = new StringBuilder();
            WebProcessInformation pi = ProcessInformation;
            tempPi.Append(
                pi.ProcessName + Environment.NewLine);
            tempPi.Append(
                pi.ProcessID.ToString() + Environment.NewLine);
            tempPi.Append(
                pi.AccountName + Environment.NewLine);
            return tempPi.ToString();
        }

        public override void FormatCustomEventDetails(
            WebEventFormatter formatter)
        {
            base.FormatCustomEventDetails(formatter);

            // Add custom data.
            formatter.AppendLine("");

            formatter.IndentationLevel += 1;
            formatter.AppendLine(
                "** SampleWebManagementEvent Start **");
          
            // Add custom data.
            formatter.AppendLine(eventInfo.ToString());

            formatter.AppendLine(
                      "** SampleWebManagementEvent End **");
        }
    }
}
Imports System.Text
Imports System.Web
Imports System.Web.Management


' Implements a custom 
' WebManagementEvent class. 

Public Class SampleWebManagementEvent
   Inherits WebManagementEvent
   Private eventInfo As StringBuilder
   
   
   ' Invoked in case of events 
   ' identified only by their event code.
    Public Sub New(ByVal msg As String, _
    ByVal eventSource As Object, _
    ByVal eventCode As Integer)
        MyBase.New(msg, eventSource, eventCode)
        ' Perform custom initialization.
        eventInfo = New StringBuilder()
        eventInfo.Append(String.Format( _
        "Event created at: ", EventTime.ToString()))
    End Sub
   
   
   ' Invoked in case of events identified 
   ' by their event code.and related 
   ' event detailed code.
    Public Sub New(ByVal msg As String, _
    ByVal eventSource As Object, _
    ByVal eventCode As Integer, _
    ByVal eventDetailCode As Integer)
        MyBase.New(msg, eventSource, _
        eventCode, eventDetailCode)
        ' Perform custom initialization.
        eventInfo = New StringBuilder()
        eventInfo.Append(String.Format( _
        "Event created at: ", EventTime.ToString()))
    End Sub
   
   
   ' Raises the SampleWebRequestEvent.
   Public Overrides Sub Raise()
      ' Perform custom processing. 
        eventInfo.Append(String.Format( _
        "Event raised at: ", EventTime.ToString()))
      ' Raise the event.
      MyBase.Raise()
   End Sub
   
   
   ' Obtains the current process information.
   Public Function GetProcessInfo() As String
      Dim tempPi As New StringBuilder()
      Dim pi As WebProcessInformation = ProcessInformation
        tempPi.Append( _
        (pi.ProcessName + Environment.NewLine))
        tempPi.Append( _
        (pi.ProcessID.ToString() + Environment.NewLine))
        tempPi.Append( _
        (pi.AccountName + Environment.NewLine))
      Return tempPi.ToString()
   End Function 'GetProcessInfo
   
   
    Public Overrides Sub FormatCustomEventDetails( _
    ByVal formatter As WebEventFormatter)
        MyBase.FormatCustomEventDetails(formatter)

        ' Add custom data.
        formatter.AppendLine("")

        formatter.IndentationLevel += 1
        formatter.AppendLine( _
        "** SampleWebManagementEvent Start **")

        ' Add custom data.
        formatter.AppendLine(eventInfo.ToString())

        formatter.AppendLine( _
        "** SampleWebManagementEvent End **")
    End Sub
End Class

Segue-se um excerto do ficheiro de configuração que permite ao ASP.NET usar o evento personalizado.

<healthMonitoring enabled="true"
  heartBeatInterval="0">
  <eventMappings>

    <add  name="SampleWebManagementEvent" type="SamplesAspNet.SampleWebManagementEvent,webmanagementevent,Version=1.0.1573.24438, Culture=neutral, PublicKeyToken=2f5f337ae5c9bdaa, processorArchitecture=MSIL"/>

  </eventMappings>
  <rules>
    <add
      name="Custom WebManagementEvent"
      eventName="SampleWebManagementEvent"
      provider="EventLogProvider"
      profile="Critical"/>
  </rules>
</healthMonitoring>

Observações

A monitorização do estado do ASP.NET permite que as equipas de produção e operações gerenciem aplicações Web implementadas. O System.Web.Management namespace contém os tipos de eventos de saúde responsáveis por empacotar os dados de estado de saúde da aplicação e os tipos de fornecedores responsáveis pelo processamento desses dados. Inclui também tipos de apoio que ajudam na gestão de eventos de saúde.

A WebManagementEvent é a classe base para todos os tipos de eventos de monitorização de saúde ASP.NET. Utiliza a WebProcessInformation classe para obter informação de processo disponível para as suas classes derivadas.

Note

Na maioria dos casos, poderá usar os tipos de monitorização de saúde ASP.NET tal como implementados, e controlará o sistema de monitorização de saúde especificando valores na secção de configuração healthMonitoring. Também pode recorrer aos tipos de monitorização de saúde para criar os seus próprios eventos e prestadores personalizados. Para um exemplo de derivação da WebManagementEvent turma, veja o exemplo apresentado neste tópico.

Notas para Herdeiros

Ao formatar a informação do seu evento personalizado para exibição, sobrepor o FormatCustomEventDetails(WebEventFormatter) método em vez do ToString método. Isto evitará sobrescrever ou manipular informações sensíveis do sistema.

O código de evento que especifica para o seu evento personalizado deve ser maior que WebExtendedBase.

Construtores

Name Description
WebManagementEvent(String, Object, Int32, Int32)

Inicializa uma nova instância da WebManagementEvent classe usando os parâmetros fornecidos.

WebManagementEvent(String, Object, Int32)

Inicializa uma nova instância da WebManagementEvent classe usando os parâmetros fornecidos.

Propriedades

Name Description
EventCode

Obtém o valor do código associado ao evento.

(Herdado de WebBaseEvent)
EventDetailCode

Obtém o código de detalhe do evento.

(Herdado de WebBaseEvent)
EventID

Obtém o identificador associado ao evento.

(Herdado de WebBaseEvent)
EventOccurrence

Recebe um contador que representa o número de vezes que o evento ocorreu.

(Herdado de WebBaseEvent)
EventSequence

Obtém o número de vezes que o evento foi levantado pela aplicação.

(Herdado de WebBaseEvent)
EventSource

Fica com o objeto que eleva o evento.

(Herdado de WebBaseEvent)
EventTime

Obtém a hora em que o evento foi levantado.

(Herdado de WebBaseEvent)
EventTimeUtc

Obtém a hora em que o evento foi levantado.

(Herdado de WebBaseEvent)
Message

Recebe a mensagem que descreve o evento.

(Herdado de WebBaseEvent)
ProcessInformation

Obtém informações sobre o processo de alojamento de aplicações ASP.NET.

Métodos

Name Description
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
FormatCustomEventDetails(WebEventFormatter)

Fornece formatação padrão da informação do evento.

(Herdado de WebBaseEvent)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IncrementPerfCounters()

Usado internamente para incrementar contadores de desempenho.

(Herdado de WebBaseEvent)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
Raise()

Levanta um evento ao notificar qualquer fornecedor configurado de que o evento ocorreu.

(Herdado de WebBaseEvent)
ToString()

Formata a informação do evento para fins de exibição.

(Herdado de WebBaseEvent)
ToString(Boolean, Boolean)

Formata a informação do evento para fins de exibição.

(Herdado de WebBaseEvent)

Aplica-se a

Ver também