选择显示字体大小

asp.net中用healthmonitor属性用法

     在asp.net 2.0中,可以使用healthmonitoring属性监测事件。healthmonitoring属性是一个基于方法的provider,在这里可以构造自己的provider。利用healthmonitoring属性,我们可以诸如记录错语、成功的事件等,对不同的数据源,如事件日志,sql server甚至对于自己通过继承webeventprovider类创建自己的providers。在此文章中,我打算介绍配置一个监测sqlserver错语的并且对某人的电子信箱地址发送邮件的web应用程序。首先,看一下在web.config中的healthmonitoring程序片段,在此可以建立将要用到的事件。
  
  <healthmonitoring enabled="truefalse" 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而工作,它将事件存储在as.net_web_event表。为了安装此数据库,必须运行位于framework文件夹中的as.net_regsql.exe向导。
  
    现在,配置对sql server provider有登录错语并且发送一个电子邮件而产生错误的程序。
  
    下面是一个使用sqlwebeventprovider和simplemailwebeventprovider来存错语事件的例子。
  
  <healthmonitoring enabled="true" heartbeatinterval="0">
  <buffermodes>
  <add name="critical notification" maxbuffersize="100" maxflushsize="20"urgentflushthreshold="1" regularflushinterval="infinite" urgentflushinterval="00:01:00" maxbufferthreads="1"/>
  
  <add name="analysis" maxbuffersize="1000" maxflushsize="100" urgentflushthreshold="100"
  regularflushinterval="00:05:00" urgentflushinterval="00:01:00" maxbufferthreads="1"/>
  
  </buffermodes>
  <providers>
  
  <add name="criticalmaileventprovider" type="system.web.management.simplemailwebeventprovider, system.web ..." from=info@nsquared2.net to=fnormen@hotmail.com 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="true"
  buffermode="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="default"
  mininterval="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();
  }
  
  
  
    


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons