如何:实现运行状况监视自定义提供程序示例
更新:2007 年 11 月
自定义 ASP.NET 运行状况监视提供程序示例 主题中的示例阐释了如何创建用来处理 ASP.NET 运行状况事件的自定义提供程序。该代码示例还演示如何通过从 BufferedWebEventProvider 类派生来创建向本地文件写入事件信息的自定义提供程序。
该示例特意设计得很简单。目的在于让您完全控制自定义提供程序的基本机制。在实际的方案中,您可以将该代码示例用作应用程序行为的初步探测,以帮助您了解 ASP.NET 运行状况监视所提供的信息。
此示例提供程序演示了下列功能:
通过继承 BufferedWebEventProvider 来构建自定义提供程序。此提供程序包括如下功能:先基于各种因素(如指定的时间间隔)来保存事件信息,然后再记录这些信息。
配置自定义提供程序。
与 Windows 事件查看器交互。
运行此示例要求满足以下条件:
在运行 Web 应用程序的服务器上安装 Internet 信息服务。有关更多信息,请参见如何:在 IIS 5.0 和 6.0 中创建和配置虚拟目录 或在 https://www.microsoft.com/china 上搜索 Internet Information Services(Internet 信息服务)。
一个 ASP.NET Web 应用程序。
构建自定义事件提供程序
将自定义事件提供程序编译为一个库,并将该库放在 ASP.NET 应用程序的 Bin 目录中,或者为程序集指定强名称,然后将它放在全局程序集缓存 (GAC) 中。
下面的命令示例演示如何使用命令行编译器来编译该示例。
vbc /out:<example_name>.dll /t:library <example_name>.vb /r:System.Web.dll /r:System.Configuration.dll /r:<required namespace>
csc /out:<example_name>.dll /t:library <example_name>.cs /r:System.Web.dll /r:System.Configuration.dll /r:<required namespace>
说明:
如果无法执行编译器命令,则必须在运行命令之前将 .NET Framework 安装路径添加到 Windows PATH 变量中。在 Windows 中,右击“我的电脑”,然后依次单击“属性”、“高级”选项卡和“环境变量”按钮。在“系统变量”列表中,双击 Path 变量。在“变量值”文本框中,将一个分号 (;) 添加到文本框中的现有值的末尾,然后键入 .NET Framework 的安装路径。.NET Framework 通常安装在位于 \Microsoft.NET\Framework\版本号 的 Windows 安装文件夹中。
将应用程序配置为使用该示例
如果您的应用程序的根文件夹中已经包含一个名为 Web.config 的文件,请打开该文件。否则,创建一个名为 Web.config 的文本文件并添加以下文本。
<?xml version="1.0"?> <configuration xmlns="https://schemas.microsoft.com/.NetConfiguration/v2.0"> <system.web> </system.web> </configuration>
在 system.web 标记内部,添加以下 healthMonitoring 元素。
<healthMonitoring heartBeatInterval="0" enabled="true"> <bufferModes> <add name="Custom Notification" maxBufferSize="10" maxFlushSize="5" urgentFlushThreshold="2" regularFlushInterval="Infinite" urgentFlushInterval="00:00:30" /> </bufferModes> <providers> <add name="SampleEventProvider" type="Samples.AspNet.Management.SampleBufferedEventProvider" buffer="true" bufferMode="Custom Notification" /> </providers> <profiles> <add name="Custom" minInstances="1" maxLimit="Infinite" minInterval="00:00:00" /> </profiles> <rules> <add name="Custom Event Provider" eventName="All Events" provider="SampleEventProvider" profile="Custom" /> </rules> </healthMonitoring>
healthMonitoring 元素中的设置使用 providers 元素添加自定义提供程序,并指定一个 profiles 元素,在本例中,该元素通过限制事件可以引发的次数来保护服务器。该示例还包括一个将事件与配置文件和提供程序关联的 rules 元素。
type 属性可以像上面的代码示例那样只列出类名,也可以像下面的示例那样列出完全限定的类型:
type="Samples.AspNet.Management.SampleWebRequestEvent, Sample.SampleCustomEventProvider,Version=1.0.0.0,Culture=neutral, PublicKeyToken=xxxxxxxxxxxx"
说明:
只有当该类已安装在 GAC 或 Bin 目录中时,才需要完全限定的类型。
测试自定义 Web 事件
在浏览器中,请求 Web 应用程序中的任何一页。
运行应用程序中的任何页都会引发自定义事件。
若要查看自定义事件数据,请打开由代码中的 logFilePath 变量指定的日志文件。
请参见
概念
参考
healthMonitoring 元素(ASP.NET 设置架构)