Condividi tramite


WebManagementEvent Classe

Definizione

Definisce la classe base per gli eventi contenenti informazioni su applicazioni e processi.

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
Ereditarietà
WebManagementEvent
Derivato

Esempio

Nell'esempio WebManagementEvent seguente viene illustrato come implementare un evento personalizzato derivandolo dalla 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

Di seguito è riportato un estratto del file di configurazione che consente ASP.NET di usare l'evento personalizzato.

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

Commenti

ASP.NET monitoraggio dell'integrità consente al personale di produzione e operazioni di gestire le applicazioni Web distribuite. Lo System.Web.Management spazio dei nomi contiene i tipi di evento di integrità responsabili della creazione di pacchetti di dati relativi allo stato dell'integrità dell'applicazione e i tipi di provider responsabili dell'elaborazione di questi dati. Contiene anche tipi di supporto che consentono durante la gestione degli eventi di integrità.

È WebManagementEvent la classe di base per tutti i tipi di eventi di monitoraggio dell'integrità ASP.NET. Usa la WebProcessInformation classe per ottenere informazioni sul processo disponibili per le relative classi derivate.

Nota

Nella maggior parte dei casi sarà possibile usare i tipi di monitoraggio dell'integrità ASP.NET come implementato e si controlla il sistema di monitoraggio dell'integrità specificando i valori nella healthMonitoring sezione di configurazione. È anche possibile derivare dai tipi di monitoraggio dell'integrità per creare eventi e provider personalizzati. Per un esempio di derivazione dalla classe, vedere l'esempio WebManagementEvent fornito in questo argomento.

Note per gli eredi

Quando si formattano le informazioni sull'evento personalizzato per la visualizzazione, eseguire l'override del FormatCustomEventDetails(WebEventFormatter) metodo anziché del ToString metodo. In questo modo si evita di sovrascrivere o manomettere le informazioni di sistema sensibili.

Il codice evento specificato per l'evento personalizzato deve essere maggiore di WebExtendedBase.

Costruttori

WebManagementEvent(String, Object, Int32)

Inizializza una nuova istanza della classe WebManagementEvent utilizzando i parametri forniti.

WebManagementEvent(String, Object, Int32, Int32)

Inizializza una nuova istanza della classe WebManagementEvent utilizzando i parametri forniti.

Proprietà

EventCode

Ottiene il valore di codice associato all'evento.

(Ereditato da WebBaseEvent)
EventDetailCode

Ottiene il codice dettagliato dell'evento.

(Ereditato da WebBaseEvent)
EventID

Ottiene l'identificatore associato all'evento.

(Ereditato da WebBaseEvent)
EventOccurrence

Ottiene un contatore che rappresenta il numero di occorrenze dell'evento.

(Ereditato da WebBaseEvent)
EventSequence

Ottiene il numero di volte in cui l'evento è stato generato dall'applicazione.

(Ereditato da WebBaseEvent)
EventSource

Ottiene l'oggetto che genera l'evento.

(Ereditato da WebBaseEvent)
EventTime

Ottiene la data e l'ora in cui è stato generato l'evento.

(Ereditato da WebBaseEvent)
EventTimeUtc

Ottiene la data e l'ora in cui è stato generato l'evento.

(Ereditato da WebBaseEvent)
Message

Ottiene il messaggio nel quale è descritto l'evento.

(Ereditato da WebBaseEvent)
ProcessInformation

Ottiene informazioni sul processo che ospita l'applicazione ASP.NET.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
FormatCustomEventDetails(WebEventFormatter)

Fornisce una formattazione standard delle informazioni relative all'evento.

(Ereditato da WebBaseEvent)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
IncrementPerfCounters()

Utilizzato internamente per incrementare i contatori delle prestazioni.

(Ereditato da WebBaseEvent)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
Raise()

Genera un evento notificando a qualsiasi provider configurato che l'evento si è verificato.

(Ereditato da WebBaseEvent)
ToString()

Formatta le informazioni relative all'evento ai fini della visualizzazione.

(Ereditato da WebBaseEvent)
ToString(Boolean, Boolean)

Formatta le informazioni relative all'evento ai fini della visualizzazione.

(Ereditato da WebBaseEvent)

Si applica a

Vedi anche