WebBaseEvent Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Define a classe base para os eventos de monitorização de saúde do ASP.NET.
public ref class WebBaseEvent
public class WebBaseEvent
type WebBaseEvent = class
Public Class WebBaseEvent
- Herança
-
WebBaseEvent
- Derivado
Exemplos
O exemplo seguinte mostra como derivar da WebBaseEvent classe para criar um evento personalizado de monitorização de saúde.
using System;
using System.Text;
using System.Web;
using System.Web.Management;
namespace SamplesAspNet
{
// Implements a custom WebBaseEvent class.
public class SampleWebBaseEvent :
System.Web.Management.WebBaseEvent, IWebEventCustomEvaluator
{
private string customCreatedMsg, customRaisedMsg;
// Store firing record info.
private static string firingRecordInfo;
// Implements the IWebEventCustomEvaluator.CanFire
// method. It is called by the ASP.NET if this custom
// type is configured in the profile
// element of the healthMonitoring section.
public bool CanFire(
System.Web.Management.WebBaseEvent e,
RuleFiringRecord rule)
{
bool fireEvent;
string lastFired = rule.LastFired.ToString();
string timesRaised = rule.TimesRaised.ToString();
// Fire every other event raised.
fireEvent =
(rule.TimesRaised % 2 == 0) ? true : false;
if (fireEvent)
{
firingRecordInfo =
string.Format("Event last fired: {0}",
lastFired) +
string.Format(". Times raised: {0}",
timesRaised);
}
else
firingRecordInfo =
string.Format(
"Event not fired. Times raised: {0}",
timesRaised);
return fireEvent;
}
// Invoked in case of events identified only by
// their event code.
public SampleWebBaseEvent(string msg,
object eventSource, int eventCode):
base(msg, eventSource, eventCode)
{
// Perform custom initialization.
customCreatedMsg =
string.Format("Event created at: {0}",
EventTime.ToString());
}
// Invoked in case of events identified by their
// event code.and related event detailed code.
public SampleWebBaseEvent(string msg, object eventSource,
int eventCode, int eventDetailCode):
base(msg, eventSource, eventCode, eventDetailCode)
{
// Perform custom initialization.
customCreatedMsg =
string.Format("Event created at: {0}",
EventTime.ToString());
}
// Raises the SampleWebBaseEvent.
public override void Raise()
{
// Perform custom processing.
customRaisedMsg =
string.Format("Event raised at: {0}",
EventTime.ToString());
// Raise the event.
base.Raise();
}
// Raises the SampleWebBaseEvent.
public void CustomRaise(
System.Web.Management.WebBaseEvent evnt)
{
// Raise the event.
Raise(evnt);
}
// Gets the event code.
public int GetEventCode(bool detail)
{
int eCode;
if (!detail)
// Get the event code.
eCode = EventCode;
else
// Get the detail event code.
eCode = EventDetailCode;
return eCode;
}
// Gets the event sequence.
public long GetEventSequence()
{
// Get the event sequence.
long eventSequence = EventSequence;
return eventSequence;
}
// Gets the event source.
public Object GetEventSource()
{
// Get the event source.
Object source = this.EventSource;
return source;
}
// Gets the event time.
public DateTime GetEventTime()
{
// Get the event source.
DateTime eTime = EventTime;
return eTime;
}
// Gets the event time.
public DateTime GetEventTimeUtc()
{
// Get the event source.
DateTime eTime = EventTimeUtc;
return eTime;
}
// Gets the event sequence.
public string GetEventMessage()
{
// Get the event message.
string eventMsg = Message;
return eventMsg;
}
// Gets the current application information.
public WebApplicationInformation GetEventAppInfo()
{
// Get the event message.
WebApplicationInformation appImfo =
ApplicationInformation;
return appImfo;
}
// Implements the ToString() method.
public override string ToString()
{
return base.ToString();
}
// Implements the ToString(bool, bool) method.
public string customToString(bool includeAppInfo,
bool includeCustomInfo)
{
return (
base.ToString(includeAppInfo,
includeCustomInfo));
}
// Gets the event identifier.
public Guid GetEventId()
{
Guid evId = EventID;
return evId;
}
//Formats Web request event information.
public override void FormatCustomEventDetails(
WebEventFormatter formatter)
{
base.FormatCustomEventDetails(formatter);
// Add custom data.
formatter.AppendLine("");
formatter.IndentationLevel += 1;
formatter.TabSize = 4;
formatter.AppendLine(
"*SampleWebBaseEvent Start *");
// Display custom event information.
formatter.AppendLine(customCreatedMsg);
formatter.AppendLine(customRaisedMsg);
formatter.AppendLine(firingRecordInfo);
formatter.AppendLine(
"* SampleWebBaseEvent End *");
formatter.IndentationLevel -= 1;
}
}
}
Imports System.Text
Imports System.Web
Imports System.Web.Management
Public Class SampleWebBaseEvent
Inherits System.Web.Management.WebBaseEvent
Implements System.Web.Management.IWebEventCustomEvaluator
Private customCreatedMsg, customRaisedMsg As String
' Store firing record info.
Private Shared firingRecordInfo As String
' Implements the IWebEventCustomEvaluator.CanFire
' method. It is called by the ASP.NET if this custom
' type is configured in the profile
' element of the healthMonitoring section.
Public Function CanFire( _
ByVal e As System.Web.Management.WebBaseEvent, _
ByVal rule As RuleFiringRecord) As Boolean _
Implements System.Web.Management.IWebEventCustomEvaluator.CanFire
Dim fireEvent As Boolean
Dim lastFired As String = _
rule.LastFired.ToString()
Dim timesRaised As String = _
rule.TimesRaised.ToString()
' Fire every other event raised.
fireEvent = _
IIf(rule.TimesRaised Mod 2 = 0, True, False)
If fireEvent Then
firingRecordInfo = String.Format( _
"Event last fired: {0}", lastFired) + _
String.Format( _
". Times raised: {0}", timesRaised)
Else
firingRecordInfo = String.Format( _
"Event not fired. Times raised: {0}", _
timesRaised)
End If
Return fireEvent
End Function 'CanFire
' 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.
customCreatedMsg = String.Format( _
"Event created at: {0}", DateTime.Now.TimeOfDay.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.
customCreatedMsg = String.Format( _
"Event created at: {0}", DateTime.Now.TimeOfDay.ToString())
End Sub
' Raises the SampleWebBaseEvent.
Public Overrides Sub Raise()
' Perform custom processing.
customRaisedMsg = String.Format( _
"Event raised at: {0}", DateTime.Now.TimeOfDay.ToString())
' Raise the event.
MyBase.Raise()
End Sub
' Raises the SampleWebBaseEvent.
Public Sub CustomRaise(ByVal evnt _
As System.Web.Management.WebBaseEvent)
' Raise the event.
Raise(evnt)
End Sub
' Gets the event code.
Public Function GetEventCode(ByVal detail _
As Boolean) As Integer
Dim eCode As Integer
If Not detail Then
' Get the event code.
eCode = EventCode
' Get the detail event code.
Else
eCode = EventDetailCode
End If
Return eCode
End Function 'GetEventCode
' Gets the event sequence.
Public Function GetEventSequence() As Long
' Get the event sequence.
Dim eventSequence As Long = eventSequence
Return eventSequence
End Function 'GetEventSequence
' Gets the event source.
Public Function GetEventSource() As [Object]
' Get the event source.
Dim [source] As [Object] = Me.EventSource
Return [source]
End Function 'GetEventSource
' Gets the event time.
Public Function GetEventTime() As DateTime
' Get the event source.
Dim eTime As DateTime = EventTime
Return eTime
End Function 'GetEventTime
' Gets the event time.
Public Function GetEventTimeUtc() As DateTime
' Get the event source.
Dim eTime As DateTime = EventTimeUtc
Return eTime
End Function 'GetEventTimeUtc
' Gets the event sequence.
Public Function GetEventMessage() As String
' Get the event message.
Dim eventMsg As String = Message
Return eventMsg
End Function 'GetEventMessage
' Gets the current application information.
Public Function GetEventAppInfo() As WebApplicationInformation
' Get the event message.
Dim appImfo As WebApplicationInformation = _
ApplicationInformation
Return appImfo
End Function 'GetEventAppInfo
' Implements the ToString() method.
Public Overrides Function ToString() As String
Return MyBase.ToString()
End Function 'ToString
' Implements the ToString(bool, bool) method.
Public Function customToString(ByVal includeAppInfo As Boolean, _
ByVal includeCustomInfo As Boolean) As String
Return MyBase.ToString(includeAppInfo, includeCustomInfo)
End Function 'customToString
' Gets the event identifier.
Public Function GetEventId() As Guid
Dim evId As Guid = EventID
Return evId
End Function 'GetEventId
'Formats Web request event information.
Public Overrides Sub FormatCustomEventDetails( _
ByVal formatter As WebEventFormatter)
MyBase.FormatCustomEventDetails(formatter)
' Add custom data.
formatter.AppendLine("")
formatter.IndentationLevel += 1
formatter.TabSize = 4
formatter.AppendLine("*SampleWebBaseEvent Start *")
formatter.AppendLine("Custom information goes here")
formatter.AppendLine("* SampleWebBaseEvent End *")
' Display custom event timing.
formatter.AppendLine(customCreatedMsg)
formatter.AppendLine(customRaisedMsg)
formatter.IndentationLevel -= 1
End Sub
End Class
O exemplo seguinte é um excerto do ficheiro de configuração que permite ao ASP.NET usar o evento personalizado.
<healthMonitoring enabled="true" heartBeatInterval="0">
<eventMappings>
<add name="SampleWebBaseEvent"
type="SamplesAspNet.SampleWebBaseEvent,
webbaseevent, Version=1.0.1573.24438, Culture=neutral,
PublicKeyToken=2f5f337ae5c9bdaa,
processorArchitecture=MSIL" />
</eventMappings>
<rules>
<add
name="CustomWebBaseEvent"
eventName="SampleWebBaseEvent"
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 classe WebBaseEvent é a raiz da árvore de herança para todos os tipos ASP.NET de eventos de monitorização de saúde. Utiliza a WebApplicationInformation classe para obter informação de aplicação disponível para a sua classe derivada.
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 WebBaseEvent turma, veja o exemplo apresentado neste tópico.
Notas para Herdeiros
Quando formatares a informação do teu evento personalizado para exibição, sobrescreve 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 |
|---|---|
| WebBaseEvent(String, Object, Int32, Int32) |
Inicializa uma nova instância da WebBaseEvent classe usando os parâmetros fornecidos. |
| WebBaseEvent(String, Object, Int32) |
Inicializa uma nova instância da WebBaseEvent classe usando os parâmetros fornecidos. |
Propriedades
| Name | Description |
|---|---|
| ApplicationInformation |
Obtém um WebApplicationInformation objeto que contém informação sobre a aplicação atual a monitorizar. |
| EventCode |
Obtém o valor do código associado ao evento. |
| EventDetailCode |
Obtém o código de detalhe do evento. |
| EventID |
Obtém o identificador associado ao evento. |
| EventOccurrence |
Recebe um contador que representa o número de vezes que o evento ocorreu. |
| EventSequence |
Obtém o número de vezes que o evento foi levantado pela aplicação. |
| EventSource |
Fica com o objeto que eleva o evento. |
| EventTime |
Obtém a hora em que o evento foi levantado. |
| EventTimeUtc |
Obtém a hora em que o evento foi levantado. |
| Message |
Recebe a mensagem que descreve o evento. |
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. |
| 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. |
| 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. |
| Raise(WebBaseEvent) |
Aumenta o evento especificado notificando qualquer fornecedor configurado de que o evento ocorreu. |
| ToString() |
Formata a informação do evento para fins de exibição. |
| ToString(Boolean, Boolean) |
Formata a informação do evento para fins de exibição. |