配置针对应用程序的运行情况监视的一个服务 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"/>