WebManagementEvent クラス
アセンブリ: System.Web (system.web.dll 内)


運用および操作の担当者は、ASP.NET Health Monitoring を使用して、配置されている Web アプリケーションを管理できます。System.Web.Management 名前空間には、アプリケーションの状態データをパッケージ化する状態イベント型、およびそのデータを処理するプロバイダ型が含まれます。また、状態イベント管理を支援するサポート型も含まれます。
WebManagementEvent は、すべての ASP.NET 状態監視イベント型の基本クラスです。派生クラスで使用できるプロセス情報の取得には、WebProcessInformation クラスを使用します。
![]() |
---|
ほとんどの場合、ASP.NET 状態監視型は実装のまま使用でき、healthMonitoring 構成セクションに値を指定して ASP.NET Health Monitoring system を制御できます。状態監視型の派生として独自のイベントおよびプロバイダを作成することもできます。WebManagementEvent クラスの派生の例については、このトピックの例を参照してください。 |

WebManagementEvent クラスの派生としてカスタム イベントを実装する方法を次のコード例に示します。
Imports System 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 'New ' 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 'New ' 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 'Raise ' 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 'FormatCustomEventDetails End Class 'SampleWebManagementEvent
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 **"); } } }
次に示すのは、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>

System.Web.Management.WebBaseEvent
System.Web.Management.WebManagementEvent
System.Web.Management.WebApplicationLifetimeEvent
System.Web.Management.WebAuditEvent
System.Web.Management.WebBaseErrorEvent
System.Web.Management.WebHeartbeatEvent
System.Web.Management.WebRequestEvent


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- WebManagementEvent クラスのページへのリンク