• 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"/>
    事件处理程序
  • 相关阅读:
    Dev:LookUpEdit的用法
    Excel:写入Excel单纯写入
    浅拷贝与深拷贝
    自行车的种类
    简单的话
    Excel:导入导出原文02
    VS2010中出现无法嵌入互操作类型
    U盘有时候不显示(win7 64位)
    Knockout学习之Single Page Application
    CSS点滴整理
  • 原文地址:https://www.cnblogs.com/HopeGi/p/5887475.html
Copyright © 2020-2023  润新知