WebManagementEvent 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
定義包含應用程式和處理序資訊之事件的基底類別。
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
- 繼承
- 衍生
範例
下列範例示範如何藉由從 類別衍生自訂事件來實作 WebManagementEvent 自訂事件。
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
以下是組態檔的摘錄,可讓 ASP.NET 使用自訂事件。
<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>
備註
ASP.NET 健康情況監視可讓生產與作業人員管理已部署的 Web 應用程式。 System.Web.Management命名空間包含負責封裝應用程式健康狀態資料的健全狀況事件種類,以及負責處理此資料的提供者類型。 它也包含支援類型,可協助管理健康情況事件。
WebManagementEvent是所有 ASP.NET 健全狀況監視事件種類的基類。 它會使用 WebProcessInformation 類別來取得其衍生類別可用的進程資訊。
注意
在大部分情況下,您將能夠使用實作的 ASP.NET 健康情況監視類型,而且您會在組態區段中指定值 healthMonitoring
來控制健康情況監視系統。 您也可以衍生自健康情況監視類型,以建立您自己的自訂事件和提供者。 如需衍生自 類別的 WebManagementEvent 範例,請參閱本主題中提供的範例。
給繼承者的注意事項
格式化自訂事件資訊以顯示時,請覆寫 FormatCustomEventDetails(WebEventFormatter) 方法,而不是 ToString 方法。 這可避免覆寫或竄改敏感性系統資訊。
您為自訂事件指定的事件程式碼必須大於 WebExtendedBase 。
建構函式
WebManagementEvent(String, Object, Int32, Int32) |
使用提供的參數來初始化 WebManagementEvent 類別的新執行個體。 |
WebManagementEvent(String, Object, Int32) |
使用提供的參數來初始化 WebManagementEvent 類別的新執行個體。 |
屬性
EventCode |
取得與事件關聯的代碼值。 (繼承來源 WebBaseEvent) |
EventDetailCode |
取得事件詳細資料代碼。 (繼承來源 WebBaseEvent) |
EventID |
取得與此事件相關聯的識別項。 (繼承來源 WebBaseEvent) |
EventOccurrence |
取得計數器,表示事件發生的次數。 (繼承來源 WebBaseEvent) |
EventSequence |
取得應用程式引發此事件的次數。 (繼承來源 WebBaseEvent) |
EventSource |
取得引發事件的物件。 (繼承來源 WebBaseEvent) |
EventTime |
取得事件引發的時間。 (繼承來源 WebBaseEvent) |
EventTimeUtc |
取得事件引發的時間。 (繼承來源 WebBaseEvent) |
Message |
取得描述事件的訊息。 (繼承來源 WebBaseEvent) |
ProcessInformation |
取得關於 ASP.NET 應用程式裝載處理序的資訊。 |
方法
Equals(Object) |
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
FormatCustomEventDetails(WebEventFormatter) |
提供事件資訊的標準格式。 (繼承來源 WebBaseEvent) |
GetHashCode() |
做為預設雜湊函式。 (繼承來源 Object) |
GetType() |
取得目前執行個體的 Type。 (繼承來源 Object) |
IncrementPerfCounters() |
在內部使用,以逐步遞增效能計數器。 (繼承來源 WebBaseEvent) |
MemberwiseClone() |
建立目前 Object 的淺層複製。 (繼承來源 Object) |
Raise() |
告知設定的提供者事件已發生來引發事件。 (繼承來源 WebBaseEvent) |
ToString() |
針對顯示用途,格式化事件資訊。 (繼承來源 WebBaseEvent) |
ToString(Boolean, Boolean) |
針對顯示用途,格式化事件資訊。 (繼承來源 WebBaseEvent) |