healthMonitoring与运行情况监视

配置针对应用程序的运行情况监视的一个服务 app

   

配置节内容比以往的较为复杂,以下 框架

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

 

   

实际上这是运行情况监视是一个事件定义与处理的模型,简单来看整个运行情况监视基本点有如下三个 ide

1.在eventMappings定义事件 spa

2.在providers定义事件的处理 code

3.经过rules绑定事件给某个处理程序去处理。 blog

稍微丰富一点的话,还能够包含下面这几点 事件

1.事件能够带参数,参数则定义在profiles中,也是在绑定事件时经过rules指定 开发

2.处理程序能够具有缓冲功能,缓冲功能在在bufferModes中定义,在providers中指定给对应的处理程序。 博客

   

   

配置中全部子节点都是一个集合,下面展现几个关键个集合中元素的特性 it

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"/>
事件处理程序
相关文章
相关标签/搜索