在ASP.NET 2.0中,可以使用healthMonitoring属性监测事件。healthMonitoring属性是一个基于方法的provider,在这里可以构造自己的provider。利用healthMonitoring属性,我们可以诸如记录错语、成功的事件等,对不同的数据源,如事件日志,Sql Server甚至对于自己通过继承WebEventProvider类创建自己的providers。在此文章中,我打算介绍配置一个监测SqlServer错语的并且对某人的电子信箱地址发送邮件的web应用程序。首先,看一下在web.config中的healthMonitoring程序片段,在此可以建立将要用到的事件。
  <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="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();
  }

转载于:https://www.cnblogs.com/China-Dragon/archive/2010/02/01/1661270.html

ASP.NET中用healthMonitor属性用法相关推荐

  1. ASP.NET中用healthMonitor属性用

    在ASP.NET 2.0中,可以使用healthMonitoring属性监测事件.healthMonitoring属性是一个基于方法的provider,在这里可以构造自己的provider.利用hea ...

  2. asp.net中databinder.eval用法的总结

    asp.net中databinder.eval用法的总结 <%# bind("subject") %> //绑定字段 <%# container.dataitem ...

  3. AjaxPro2在Asp.net中的基本用法

    AjaxPro2在Asp.net中的基本用法 1.      引用ajaxPro2.dll到你的工程中. 2.      在Web.config中添加配置 <httpHandlers>   ...

  4. Vue04 -- 计算属性用法(v-for的筛选排序)

    <!DOCTYPE html> <html> <head><title>Vue --- 计算属性用法</title> </head&g ...

  5. Asp.Net中用javascript实现弹出窗口永远居中

    //Asp.Net中用javascript实现弹出窗口永远居中 function ShowDialog(url)  {    var  iWidth=600; //模态窗口宽度   var  iHei ...

  6. ASP.NET @Page指令属性

    ASP.NET @Page指令属性 @Page指令位于每个ASP.NET页面的顶部,告诉ASP.NET这个具体页面使用什么属性,以及该页面继承的用户控件.ASP.NET页面@Page指令属性有:Asp ...

  7. asp数组中REDIM的用法(动态数组)

    asp数组中REDIM的用法(动态数组) 动态数组里面的一个语句,只能出现在过程里面,可以多次使用.可以改变数组大小,和维数 格式: REDIM [Preserve] 数组名(下标1[下标2....] ...

  8. HTML5 autofocus属性用法简单介绍

    本章节简单介绍一下HTML5中新增的一个属性autofocus,它可以让一个元素加载后获取焦点,在此之前一般要通过使用javascript的focus()方法实现我们的要求,非常的简单,代码如下: 1 ...

  9. asp.net core EFCore 属性配置与DbContext

    asp.net core EFCore 属性配置与DbContext 前言 Entity Framework (EF) Core 是轻量化.可扩展.开源和跨平台版的常用 Entity Framewor ...

  10. html里position属性,科技常识:详解html中 position属性用法(四种)

    今天小编跟大家讲解下有关详解html中 position属性用法(四种) ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了有关详解html中 position属性用法(四种) 的相关资料,希望小 ...

最新文章

  1. Blender和Substance Painter制作科幻装甲视频教程
  2. 动物模型:急性肝脏损伤模型的构建及选择
  3. 第二阶段——个人工作总结DAY10
  4. XCTF WEB webshell
  5. Arrays.deepToString() 方法同时适用于基元数组和对象数组
  6. 阿里前端委员会主席圆心:未来前端的机会在哪里?
  7. Kubernetes Master High Availability 高级实践
  8. 《大数据》第1期“动态”——站在大数据的风口上
  9. MySQL 异常有这一篇就够了!
  10. ORACLE行转列通用过程(转)
  11. Q114:阅读PBRT-V3官方源代码的正确姿势
  12. MySQL_DBA整理
  13. Atitit 深入了解UUID含义是通用唯一识别码 (Universally Unique Identifier),
  14. 极客大学架构师训练营 框架开发 第三次作业
  15. MATLAB把型线图画静水力曲线,静水力曲线计算与绘制指导书
  16. Loadrunner教程–常用操做流程
  17. java中的source_Linux中source命令的用法
  18. 软件系统开发费用的估算——功能点方法 应用实例
  19. 农用地转为建设用地审批(农转用审批)
  20. SPA(单页面web应用)和MPA(多页面web应用)的区别

热门文章

  1. 推荐系统评测指标—精准率(Precision)、召回率(Recall)、F值(F-Measure)
  2. 【Caffe代码解析】SyncedMemory
  3. 如何取消恶心的chrome浏览器被360篡改劫持问题
  4. Differential Privacy差分隐私
  5. html怎么让背景颜色百分比,jquery – CSS设置背景颜色只是表行宽度的一个百分比...
  6. qt禁止拖动_Qt如何实现拖拽功能?
  7. 基于springboot的多人聊天系统
  8. Unity3D(二)游戏对象及组件
  9. 每日一技|活锁,也许你需要了解一下
  10. 使用 lanmps 环境套件安装设置新站点 案例