<healthMonitoring Enabled=true|false heartBeatInterval=time interval> <bufferModes>... </bufferModes> <providers>... </providers> <eventMappings>... </eventMappings> <profiles>... </profiles> <rules>... </rules> </healthMonitoring>
如果看一下<healthMonitoring>元素,就可以判断是否可以将设置属性为有效或无效,也可以指定对WebHeaderBeatEvent被唤醒的时间间隔。healthMonitoring有5个孩子。
bufferModes,在此可以定义一个Provider的缓冲区大小。
Providers,在此说明处理事件的Providers。
eventMappings, 在此可以画出与友好事件类型相关的事件名称。
profiles, 在此定义一个可以用来配置事件的参数集集合。
rules, 在此画出Providers的事件图。
可以阅读更多含在VS 2550文档中的关于这些元素的东西。
在继续之前,这里有一份含ASP.NET中的一些Providers清单:
System.Web.Management.MailWebEventProvider System.Web.Management.SimpleMailWebEventProvider System.Web.Management.TemplatedMailWebEventProvider System.Web.Management.TraceWebEventProvider System.Web.Management.EventLogWebEventProvider System.Web.Management.sqlWebEventProvider System.Web.Management.WmiWebEventProvider
不需要解释这些,名字告诉我们它们是干什么的。还要提一下sqlWebEventProvider依靠sql server而工作,它将事件存储在aspnet_Web_Event表。为了安装此数据库,必须运行位于framework文件夹中的aspnet_regsql.exe向导。
现在,配置对sql server provider有登录错语并且发送一个电子邮件而产生错误的程序。
下面是一个使用sqlWebEventProvider和SimpleMailWebEventProvider来存错语事件的例子。
<healthMonitoring enabled=true heartBeatInterval=0><bufferModes><add name=Critical Notification maxBufferSize=100 maxFlushSize=20urgentFlushThreshold=1 regularFlushInterval=Infinite urgentFlushInterval=00:01:00 maxBufferThreads=1/> <add name=Analysis maxBufferSize=1000 maxFlushSize=100 urgentFlushThreshold=100regularFlushInterval=00:05:00 urgentFlushInterval=00:01:00 maxBufferThreads=1/> </bufferModes><providers> <add name=CriticalMailEventProvider type=System.Web.Management.SimpleMailWebEventProvider, System.Web ... [email protected] to=fnor[email protected] priority=High bodyHeader=Warning!bodyFooter=Please investigate ASAP. subjectPrefix=Action required. buffer=true bufferMode=Critical Notification maxEventLength=4096 maxSize=4096 maxMessagesPerNotification=1/> <add name=sqlWebEventProvider type=System.Web.Management.sqlWebEventProvider, System.Web ...connectionStringName=LocalsqlServer maxEventDetailsLength=1073741823 buffer=truebufferMode=Analysis/> </providers> <eventMappings> <add name=All Errors type=System.Web.Management.WebBaseErrorEvent, System.Web .../><add name=Request Processing Errors type=System.Web.Management.WebRequestErrorEvent, System.Web .../> </eventMappings> <profiles> <add name=Default minInstances=1 maxLimit=Infinite minInterval=00:10:00/> </profiles> <rules> <add name=All Errors Default eventName=All Errors provider=sqlWebEventProvider profile=DefaultminInterval=00:00:30/> <add name=Request Processing Errors eventName=Request Processing Errors provider=CriticalMailEventProvider profile=Default/> </rules> </healthMonitoring>
在此例子中,使用sql provider来记录所有错语事件,并且当Web请求错误事件被唤醒时使用mail provider来发送一个消息。
这里有一些ASP .NET 2.0一起发布的事件:
System.Web.Management.WebBaseEvent System.Web.Management.WebHeartBeatEvent System.Web.Management.WebApplicationLifetimeEvent System.Web.Management.WebRequestEvent System.Web.Management.WebBaseErrorEvent System.Web.Management.WebErrorEvent System.Web.Management.WebRequestErrorEvent System.Web.Management.WebAuditEvent System.Web.Management.WebFailureAuditEvent System.Web.Management.WebSuccessAuditEvent System.Web.Management.WebManagementEvent System.Web.Management.WebViewStateFailureAuditEvent System.Web.Management.WebAuthenticationFailureAuditEvent System.Web.Management.WebAuthenticationSuccessAuditEvent
可以使用这些事件来对一个provider画图。也可以创建通过WebBaseEvent类继承来的自己的事件。
为自动唤醒一个事件,可以使用WebBaseEvent类的唤醒方法:
try { //.... }
catch(Exception e){ if (HealthMonitoringManager.Enabled) { WebBaseEvent.Raise(new WebErrorEvent(My Error message, null, 5000, e)); }} or: if (HealthMonitoringManager.Enabled){ WebErrorEvent event = new WebErrorEvent(My error message, null, 5000, e); event.Raise();}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。