Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 网站建设 > ASP.NET > Web 事件--向SQL Server 数据库、Windows 事件日志、WMI 命名空间或电子邮件输出事件
【标  题】:Web 事件--向SQL Server 数据库、Windows 事件日志、WMI 命名空间或电子邮件输出事件
【关键字】:Web,--,SQL,Server,Windows,WMI
【来  源】:http://blog.csdn.net/dshpsky/archive/2006/06/18/810893.aspx

Web 事件--向SQL Server 数据库、Windows 事件日志、WMI 命名空间或电子邮件输出事件

Your Ad Here

Web 事件
Web 事件功能为发出运行时事件提供了一个通用框架,用以指示应用程序中发生的值得注意的操作,报告应用程序运行状况或任何其他值得注意的信息。该功能可使管理员通过配置中的事件订阅确切地确定他们感兴趣的事件,并指定事件通过哪些信道传送。该功能包括多种现成可用的信道提供程序,它们适用于不同的方案:
将事件保存到 Microsoft? SQL Server
通过电子邮件发送事件报告
将事件写入 Windows? 事件日志
通过 WMI 转发事件
ASP.NET 2.0 自身也使用 Web 事件功能提供对各种运行时功能的运行状况报告、审核和检测。任何人都能开发并引发自定义事件类型以进一步检测他们的应用程序。

 


在下面的示例中,应用程序被配置为将所有发出的 Web 事件发送到 SQL Server 提供程序。该页在加载时将引发派生自 WebEventBase 的自定义事件类型的实例,并使用数据源控件直接从 SQL Server 事件表中读取事件。显示事件列表的 GridView 还显示了一些 ASP.NET 在请求处理周期中自己生成的事件。


C# Health Monitoring Events
 
事件和事件提供程序
Web 事件是在运行时以相应的信息构造的各种 Web 事件基类的实例,并且指定了事件代码/详细信息代码,这些代码可用来标识该事件所要表示的情况。ASP.NET 有一组用来检测在基础结构中引发的多种情况的基类,并且它允许应用程序以自定义事件类来扩展这些基类,这些自定义事件类表示该应用程序选择报告的任意信息。这些自定义事件随后可由应用程序代码通过 Web 事件引擎创建并引发。

ASP.NET 包含下列 Web 事件基类(没有全部列出),它们位于 System.Web.Management 命名空间中:

功能 说明
 WebBaseEvent  所有事件的事件基类。包含所有事件必需的属性,如事件代码、事件详细信息代码、事件引发的日期和时间、序列号、事件消息和事件详细信息。
 WebManagementEvent  管理事件的事件基类,如应用程序生存期、请求、错误和审核事件。
 WebHeartbeatEvent  由应用程序以固定的时间间隔生成的事件,用以捕获有用的运行时状态信息。
 WebAuditEvent  安全审核事件的基类,这些事件用于标记授权失败、解密失败等情况。
 WebRequestEvent  所有信息请求事件的基类。
 WebBaseErrorEvent  所有指示错误情况的事件的基类。

当事件引发时,它们由 Web 事件引擎进行处理,该引擎将这些事件路由到一个或多个表示事件使用者的 Web 事件提供程序,事件使用者被配置为侦听运行状况监视配置中的特定事件。Web 事件引擎还提供了其他一些服务,如对事件进行限流以避免不可承受的事件量。

Web 事件领域中的提供程序其实是可插接的事件使用者。ASP.NET 2.0 提供了多种现成可用的内置提供程序,并且使您能够实现和配置您自己的自定义提供程序。所包含的提供程序可以向 Microsoft SQL Server 数据库、Windows 事件日志、WMI 命名空间或电子邮件输出事件。

配置事件
注意:本节中,所有的配置都是指节中的元素(除非另有说明)。

为了收到事件,需要创建一个将事件集映射到事件使用者的订阅,这由 Web 事件提供程序实现。订阅有下列几个部分:

事件映射。用于定义一个事件集以及可用来在订阅中引用该事件集的名称,通过一个事件基类和一个可选的事件代码范围来标识该事件集,此事件集中的所有事件必须派生自该事件基类。例如,下面的映射创建了一个事件集,其中包含事件代码从 0 到 1000 的所有审核事件:
<eventMappings>

  <add name="Audit Events" startEventCode="0" endEventCode="1000" type="System.Web.Management.WebAuditEvent" />

</eventMappings>

事件订阅规则。用于定义事件集与将处理该事件集的 Web 事件提供程序之间的映射。该规则还可以选择指定一个包含事件限流信息的配置文件,以限制该规则处理的事件量,或者直接指定这些设置。

例如,下面的规则将我们在前面创建的审核事件集通过信道发送到随 ASP.NET 2.0 安装的默认事件日志提供程序:
<rules>

  <add name="MyFirstSubscription" eventName="Audit Events" provider="EventLogProvider" />

</rules>

提供程序。用于定义将使用事件的事件信道的提供程序。此处,您可以配置 ASP.NET 2.0 所包含的默认提供程序之一,或者指定您自己的派生自 Web 事件提供程序基类的类型。

例如,下面的配置默认情况下存在于 ASP.NET 2.0 安装中,以便使 ASP.NET 事件日志提供程序能够将事件写入 Windows 事件日志:
<providers>

  <add name="EventLogProvider" type="System.Web.Management.EventLogWebEventProvider" />

</providers>

您还可以配置其他设置以进一步控制节中的 Web 事件的行为,如设置配置文件以指定应用于规则的限流设置,以及用于缓冲的提供程序的缓冲模式。


创建自定义事件
为了创建自定义事件类型,您必须从某个可派生的 Web 事件基类派生您自己的事件类。然后,可以在运行时创建并引发此事件的实例,并如上所述配置对该事件的订阅。

下面的示例使用自定义事件代码和消息创建一个自定义事件,并且在页事件处理程序中将引发此事件的一个实例:
// in the code directory, or your application source code

class MySampleEvent : System.Web.Management.WebBaseEvent

{

  public const int MySampleEventCode = 200001;

 

  public MySampleEvent(String message) : base(message, null, MySampleEventCode) {}

}

 

// in an aspx page

void Page_Load()

{

  // create an instance of the event

  MySampleEvent e = new MySampleEvent("In Page_Load()");

  // raise the event to the web event engine

  e.Raise();

}

检测应用程序
为了检测应用程序以进行运行时监视,您应该创建派生自正确的 Web 事件基类的自定义事件类,并包含对应用程序有意义的附加信息。然后,您可以在您想检测的代码中创建并引发这些事件的实例。

在应用程序或其组件的内部创建并引发了您自己的事件之后,您可以配置事件订阅以通过信道将值得注意的特定事件发送到相应的提供程序。


事件限流
事件限流是指限制事件传入提供程序的速率以避免提供程序负担过重,或者限制用来传输、处理、存储或显示事件的输出方式。限流设置应用于规则级别。

您可以通过在每条规则的基础上指定限流设置,或者创建定义一组限流设置的配置文件来对事件进行限流。您可以随意使用的限流能力包括对发生 N 次的事件只记录一次,在给定时期内只记录一次事件,或者只记录某个给定事件发生的前 N 次。

下面的示例修改了审核事件订阅规则,以保证最大事件速率为每秒一个事件:
<rules>

  <add name="MyFirstSubscription" eventName="Audit Events" provider="EventLogProvider" minInterval="00:00:01" />

</rules>

注意:限流会丢失事件,因此在为审核事件之类的敏感事件设置限流设置时要格外小心。限流的替代方式是使用特定提供程序的缓冲功能,该功能以延迟事件发送为代价避免丢失事件。

下面示例将限流设置放置在一个配置文件中,该配置文件随后可在多条规则间共享:
<profiles>

  <add name="MyProfile" ="00:00:01" />

</profiles>

 

<rules>

  <add name="MyFirstSubscription" eventName="Audit Events" provider="EventLogProvider" profile="MyProfile" />

</rules>

WIN2003上Apache2+IIS6+Tomcat5之多站点完美配置篇:【上一篇】
ASP_NET 2_0 监视你的应用---Trace----Error Handing---Web Event:【下一篇】
【相关文章】
  • 使用WebPart和登陆控件的数据库设置问题!
  • [ASP.NET入门随想二]瘦子与胖子的故事——WEB程序员的编程环境与任务
  • 创建网页Video上的悬浮工具条(Create toolbar overflow video on webpage)
  • 从wordpress-cache插件看web静态HTML生成的策略
  • CreatePopup()函数的使用---弹出广告
  • SQL SERVER 数据类型详解
  • VB中定制DllRegisterServer、DllUnregisterServer
  • Deep Thinking in Patterns--工厂方法模式(Factory Method)
  • 设计模式------单例模式
  • 设计模式------简单工厂模式
  • 【随机文章】
  • 内核页表的初始化分析 (转载)
  • jsp学习--使用javabean和表单
  • show ip ospf interface
  • OracleCachedRowSet 的已经知道的问题
  • 各种MPEG资源地汇总
  • 长/短文件名转换
  • 让Windows下的Apache服务器支持ASP.NET
  • 10 Steps to Better C++
  • 什么是 screen
  • Linux一句话精彩问答(开发相关篇)
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.