WebApplicationLifetimeEvent クラス
アセンブリ: System.Web (system.web.dll 内)
構文
運用および操作の担当者は、ASP.NET Health Monitoring を使用して、配置されている Web アプリケーションを管理できます。System.Web.Management 名前空間には、アプリケーションの状態データをパッケージ化する状態イベント型、およびそのデータを処理するプロバイダ型が含まれます。また、状態イベント管理を支援するサポート型も含まれます。
アプリケーションの有効期間中のイベントには、アプリケーションの起動イベントやシャットダウン イベントなどがあります。アプリケーションが終了した場合、関連するイベント メッセージ フィールドを参照することでその原因がわかります。
WebApplicationLifetimeEvent が発生した場合、ASP.NET Health Monitoring system は Application Lifetime Events パフォーマンス カウンタを更新します。これらのイベントを記録するには、構成ファイルの healthMonitoring セクションの rules サブセクションに WebApplicationLifetimeEvent を追加します。次に例を示します。
<rules> <add name="Application Events" eventName="Application Lifetime Events" provider="EventLogProvider" profile="Default" minInterval="00:01:00" /> </rules>
Application Lifetime Events パフォーマンス カウンタには、ASP.NET の有効期間中のイベントすべての総数が格納されます。このパフォーマンス カウンタをシステム モニタ (PerfMon) に表示するには、[カウンタの追加] ウィンドウで [パフォーマンス オブジェクト] ドロップダウンリストの [ASP.NET] をクリックし、Application Lifetime Events パフォーマンス カウンタを選択して、[追加] ボタンをクリックします。詳細については、MSDN の「Using the System Monitor (PerfMon) with ASP.NET Applications」を参照してください。イベントを標準 EventLogWebEventProvider でログに記録することを許可してある場合、イベント ビューアでアプリケーション ログを選択するとイベントを表示できます。詳細については、TechNet の Windows Server 2003 に関するドキュメントの「Event Viewer」を参照してください。
メモ |
---|
ほとんどの場合、ASP.NET 状態監視型は実装のまま使用でき、healthMonitoring 構成セクションに値を指定して ASP.NET Health Monitoring system を制御できます。状態監視型の派生として独自のイベントおよびプロバイダを作成することもできます。WebApplicationLifetimeEvent クラスの派生の例については、このトピックの例を参照してください。 |
WebApplicationLifetimeEvent の派生としてカスタム イベントを作成する方法を次のコード例に示します。
Imports System Imports System.Text Imports System.Web Imports System.Web.Management ' Implements a custom WebManagementEvent class. Public Class SampleWebApplicationLifetimeEvent Inherits System.Web.Management.WebApplicationLifetimeEvent Private customCreatedMsg, customRaisedMsg As String ' 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 '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. customCreatedMsg = _ String.Format("Event created at: {0}", _ DateTime.Now.TimeOfDay.ToString()) End Sub 'New ' Raises the SampleWebRequestEvent. Public Overrides Sub Raise() ' Perform custom processing. customRaisedMsg = _ String.Format("Event raised at: {0}" + _ vbLf, DateTime.Now.TimeOfDay.ToString()) ' Raise the event. MyBase.Raise() End Sub 'Raise '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( _ "*SampleWebApplicationLifetimeEvent Start *") formatter.AppendLine("Custom information goes here") formatter.AppendLine( _ "* SampleWebApplicationLifetimeEvent End *") ' Display custom event timing. formatter.AppendLine(customCreatedMsg) formatter.AppendLine(customRaisedMsg) formatter.IndentationLevel -= 1 End Sub 'FormatCustomEventDetails End Class 'SampleWebApplicationLifetimeEvent
using System; using System.Text; using System.Web; using System.Web.Management; namespace SamplesAspNet { // Implements a custom WebManagementEvent class. public class SampleWebApplicationLifetimeEvent : System.Web.Management.WebApplicationLifetimeEvent { private string customCreatedMsg, customRaisedMsg; // Invoked in case of events identified only by // their event code. public SampleWebApplicationLifetimeEvent(string msg, object eventSource, int eventCode): base(msg, eventSource, eventCode) { // Perform custom initialization. customCreatedMsg = string.Format("Event created at: {0}", DateTime.Now.TimeOfDay.ToString()); } // Invoked in case of events identified by their // event code.and related event detailed code. public SampleWebApplicationLifetimeEvent(string msg, object eventSource, int eventCode, int eventDetailCode): base(msg, eventSource, eventCode, eventDetailCode) { // Perform custom initialization. customCreatedMsg = string.Format("Event created at: {0}", DateTime.Now.TimeOfDay.ToString()); } // Raises the SampleWebRequestEvent. public override void Raise() { // Perform custom processing. customRaisedMsg = string.Format( "Event raised at: {0}\n", DateTime.Now.TimeOfDay.ToString()); // Raise the event. base.Raise(); } //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( "*SampleWebApplicationLifetimeEvent Start *"); formatter.AppendLine("Custom information goes here"); formatter.AppendLine( "* SampleWebApplicationLifetimeEvent End *"); // Display custom event timing. formatter.AppendLine(customCreatedMsg); formatter.AppendLine(customRaisedMsg); formatter.IndentationLevel -= 1; } } }
次の構成ファイルの抜粋に、構成ファイルの healthMonitoring セクションを構成して、上記で定義される SampleWebApplicationLifetimeEvent コードを ASP.NET Health Monitoring system に追加する方法を示します。イベントをシステムに追加するには、eventMappings セクションに新しいエントリを追加してイベントを定義し、rules セクションに新しいエントリに追加して、そのイベントをプロバイダに対応付ける必要があります。
<healthMonitoring enabled="true" heartBeatInterval="0"> <eventMappings> <clear /> <!-- Configure the application lifetime event --> <!-- object to handle the Web application events. --> <add name="SampleApplicationLifetimeEvents" type="System.Web.Management.SampleWebApplicationLifetimeEvent, System.Web,Version=2.0.3600.0, Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" /> </eventMappings> <rules> <clear/> // Configure the connection between the // application lifetime event object // and the provider that must process it. <add name="Custom Application Events" eventName="SampleApplicationLifetimeEvents" provider="EventLogProvider" profile="Default" minInterval="00:01:00" /> </rules> </healthMonitoring>
System.Web.Management.WebBaseEvent
System.Web.Management.WebManagementEvent
System.Web.Management.WebApplicationLifetimeEvent
プラットフォーム
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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
- WebApplicationLifetimeEvent クラスのページへのリンク