程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> healthMonitoring與運行狀況監視,healthmonitoring

healthMonitoring與運行狀況監視,healthmonitoring

編輯:關於.NET

healthMonitoring與運行狀況監視,healthmonitoring


配置針對應用程序的運行狀況監視的一個服務

   

配置節內容比以往的較為復雜,如下

<healthMonitoring 
Enabled="true|false"
heartbeatInterval="time interval">
<bufferModes>...</bufferModes>
<providers>...</providers>
<eventMappings>...</eventMappings>
<profiles>...</profiles>
<rules>...</rules>
</healthMonitoring>

 

   

實際上這是運行狀況監視是一個事件定義與處理的模型,簡單來看整個運行狀況監視基本點有以下三個

1.在eventMappings定義事件

2.在providers定義事件的處理

3.通過rules綁定事件給某個處理程序去處理。

稍微豐富一點的話,還可以包含下面這幾點

1.事件可以帶參數,參數則定義在profiles中,也是在綁定事件時通過rules指定

2.處理程序可以具備緩沖功能,緩沖功能在在bufferModes中定義,在providers中指定給對應的處理程序。

   

   

配置中所有子節點都是一個集合,下面展示幾個關鍵個集合中元素的特性

eventMappings:件的友好名稱

name:事件友好的名稱(唯一標識)

type:事件的完全限定類型名稱

startEventCode和endEventCode:指定事件代碼標識符的其實范圍

   

profiles:事件配置

name:指定配置文件名稱(唯一標識)

minimumInstances:激發事件之前至少出現的次數

maximumLimit:指定阈值,在達到該值後,將停止激發事件

minimumInterval:指定兩個事件之間的最小時間間隔,以 "hh:mm:ss" 的形式表示

   

providers:負責事件處理類型的集合

name:指定提供程序的友好名稱(唯一標識)

type:指定對某個類的完全限定的程序集引用

buffer:指定提供程序是使用緩沖還是立即將每個事件發送給收件人,僅適用於type是 SqlWebEventProvider 類

bufferMode:指定提供程序使用的緩沖模式的名稱(如果提供程序處於緩沖模式)。此名稱必須引用 BufferModesCollection 集合中存在的現有緩沖模式之一;否則,將引發一個異常。如果打開了緩沖,則此屬性必須存在,僅適用於 SQLWebEventProvider 屬性。

   

rules:將事件映射到它的提供程序(給事件綁定處理類進行處理)

name:指定此規則的名稱

eventName、provider和profile:對其它配置節的關聯引用

minInstances:事件通知觸發前在給定應用程序內部的規則實例的最小數量

maxLimit:指定生成提供程序通知的規則實例的最大數量。

minInterval:指定兩個事件之間的最小時間間隔。

   

看profiles和rules中有相似的屬性存在,雖然同樣有最小次數、最大數量和最小時間間隔,而從文字上看,是先按照rules判斷,再按照providers進行判斷。

   

縱觀之前的描述和鄙人之前看的一篇博客(看上去感覺在MSDN中抄了不少)。只要了解了事件處理模型,這個配置節的內容以及它的功能則會好理解。框架中定義了若干個事件,和若干個事件處理程序。博文後的附錄部分則是ASP.NET中定義的事件和處理程序。開發人員有需要的話可以自己對其進行擴展,不過不管怎麼去改,也需要去添加一個新的rule。

另外,從博文或者從MSDN中也得知,如需要自己觸發事件,可調用WebBaseEvent的Raise()方法。

   

<eventMappings> <add name="All Events" type="System.Web.Management.WebBaseEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" startEventCode="0" endEventCode="2147483647"/> <add name="Heartbeats" type="System.Web.Management.WebHeartbeatEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" startEventCode="0" endEventCode="2147483647"/> <add name="Application Lifetime Events" type="System.Web.Management.WebApplicationLifetimeEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" startEventCode="0" endEventCode="2147483647"/> <add name="Request Processing Events" type="System.Web.Management.WebRequestEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" startEventCode="0" endEventCode="2147483647"/> <add name="All Errors" type="System.Web.Management.WebBaseErrorEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" startEventCode="0" endEventCode="2147483647"/> <add name="Infrastructure Errors" type="System.Web.Management.WebErrorEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" startEventCode="0" endEventCode="2147483647"/> <add name="Request Processing Errors" type="System.Web.Management.WebRequestErrorEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" startEventCode="0" endEventCode="2147483647"/> <add name="All Audits" type="System.Web.Management.WebAuditEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" startEventCode="0" endEventCode="2147483647"/> <add name="Failure Audits" type="System.Web.Management.WebFailureAuditEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" startEventCode="0" endEventCode="2147483647"/> <add name="Success Audits" type="System.Web.Management.WebSuccessAuditEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" startEventCode="0" endEventCode="2147483647"/> </eventMappings> 事件 <add name="EventLogProvider" type="System.Web.Management.EventLogWebEventProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"/> <add connectionStringName="LocalSqlServer" maxEventDetailsLength="1073741823" buffer="false" bufferMode="Notification" name="SqlWebEventProvider" type="System.Web.Management.SqlWebEventProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"/> <add name="WmiWebEventProvider" type="System.Web.Management.WmiWebEventProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"/> 事件處理程序

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved