在 ASP.NET 2.0 中的 web 事件

文章翻译 文章翻译
文章编号: 893664 - 查看本文应用于的产品
测试版信息
本文讨论了 Microsoft 的试用版产品。这篇文章中的信息按原样提供,如-并且受制于更改恕不另行通知。

没有正式的产品支持信息,可从Microsoft 对此试用版产品。有关如何获取支持信息Beta 版本,请参阅测试版中包括的文档产品文件或查看您下载的 Web 位置释放。
ASP.NET 支持文章专栏
若要自定义此列设置为您的需要,我们邀请您提交您有关您感兴趣的主题的意见和知识文库文章和 Support Voice 专栏在将来提出您想要查看的问题。您可以通过使用提交您的想法和意见 诚征意见 表单。此外还有一个指向窗体底部的此列。
展开全部 | 关闭全部

本文内容

简介

欢迎使用我们为 ASP.NET 支持语音列!我的姓名杰儿 Orman。我已超过 5 年,与 Microsoft,花费了大部分我重点是与 Web 相关的技术,如 FrontPage 和新时间SharePoint 的技术。我花了作为 ASP.NET 处理的最后一年支持工程师。

我将在支持语音列中,这个月若要描述的即将推出的版本中提供的新 Web 事件功能ASP.NET 2.0。

ASP.NET 2.0 中的 Web 事件功能

提供在 ASP.NET 2.0 中的主要新服务之一是 Web事件提供的运行状况监视系统的功能。通过修改Web.config 文件中,您可以使用运行状况监视系统日志未处理所需的例外情况、 过期的窗体、 身份验证票证和任何其他数据在您的应用程序中的记录。此列将使您可以开始使用 Web事件功能,并还将提供有关如何使用不同的示例在 ASP.NET 2.0 中的提供程序。

日志记录是通过定义规则来实现与提供程序关联的事件的。该规则定义的事件的类型向提供程序发送的。下面的基本事件都可用于您登录:
收起该表格展开该表格
WebBaseEvent基 event 类的所有事件。包含所有事件 (例如,事件代码中,事件详细信息代码,所需属性日期和时间引发该事件时,序列号,事件消息,和事件的详细信息。
WebManagementEvent基本事件对于管理事件,如类应用程序生存期、 请求、 错误和审核事件。
WebHeartbeatEvent在常规应用程序生成的事件要捕获有用的运行时状态信息的时间间隔。
WebAuditEvent安全审核事件,可供使用的基类若要将标记条件,如授权失败、 解密失败等
WebRequestEvent所有信息性请求事件的基类。
WebBaseErrorEvent类为所有事件,指示错误的的基类条件。
可用提供程序的类型允许您发送事件输出向事件查看器中,SQL Server,Windows 管理规范 (WMI),和电子邮件。预先配置的提供程序和事件映射减少的量获取事件输出记录所需的工作。

ASP.NET 2.0 中使用事件日志提供程序--全新记录事件的基础启动的应用程序域和未停止,以及记录任何处理的异常。这有助于以覆盖一些基本方案。例如,假设您的应用程序引发异常,但用户不会保存该错误,且您不能重新生成它。使用默认事件日志规则,您将能够收集异常和堆栈信息更好地了解哪种类型的错误出现了。或者,如果您的应用程序将丢失会话状态,您可以在中查找事件日志以确定是否回收应用程序域,以及为什么在第一次就停止应用程序域。

此外,运行状况监视系统是可扩展的。例如,您可以定义自定义 Web 事件),激发它们在您的应用程序中,然后定义要发送该事件的规则如您的电子邮件提供程序的信息。这使您可以轻松地将运行状况监视提供程序检测过程。举一个例子,无法处理订单和设置规则,每次激发事件的将每个事件发送到 SQL Server 数据库中。您也可能会激发事件时用户无法登录多次在行中,并将事件设置为使用基于电子邮件的提供程序。

配置的默认提供程序和事件存储在全局 Web.config 文件中。全局 Web.config 文件将所有基于 Web 的设置存储在 Machine.config 文件中存储的在 ASP.NET 1 x。全局 Web.config 文件位于以下目录:
%windir%\Microsoft.Net\Framework\v2.0.*\config\Web.config
<healthMonitoring>部分中的全局 Web.config 文件提供了默认配置设置。您可以重写这些设置或通过实施<healthMonitoring>配置您自己的设置在您的应用程序的 Web.config 文件中的节。

"包含全局 Web.config 文件的节, <healthMonitoring>以下各项: </healthMonitoring></healthMonitoring></healthMonitoring>
  • 提供程序包含设置的 WMI 事件查看器和 SQL 提供程序服务器。
  • eventMappings包含各种 WebBase 类的映射。您可以扩展如果您自己事件的类,则生成此列表。生成您自己的事件类别为您提供了更精细的粒度上发送信息的提供程序。对于示例中,您可以配置未处理的异常将发送到 SQL Server,同时发送您自己的自定义事件的电子邮件。
  • 规则链接到该提供程序的 eventMappings。
  • 缓冲与 SQL Server 和电子邮件提供程序一起使用来确定频率若要刷新到该提供程序的事件。
下面是全局的 Web.config 文件中的代码示例。
<healthMonitoring>

	<!--  Event Log Provider being added. -->
	<providers>
      		<add name="EventLogProvider" type="System.Web.Management.EventLogWebEventProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" />
	</providers>


	<!--  Event mapping provides a friendly name to the events based on the WebBaseErrorEvent class.  -->

	<eventMappings>
			<add name="All Errors" type="System.Web.Management.WebBaseErrorEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"
						startEventCode="0" endEventCode="2147483647" />
	</eventMappings>


	<!-- Rule tying the "All Errors" event mapping to the EventLog Provider.  -->
	<rules>
      		<add name="All Errors Default" eventName="All Errors" provider="EventLogProvider"
						profile="Default" minInstances="1" maxLimit="Infinite" minInterval="00:01:00"
						custom="" />
	</rules>

</healthMonitoring>

提供程序示例

此提供程序示例包含以下文件:
  • ViewEvents.aspx 文件– 触发Page_Load 和事件记录到日志按钮 click事件中的MyEvent自定义 web 事件。已使用中的数据库连接 GridView若要列出的事件记录到 SQL Server 的 Web.config 文件。

    为确保在 Web.config 文件,以指向您的ASPNETDB数据库中配置连接字符串。
  • Web.config 文件) 拥有的所有各种提供程序配置的规则和注释掉。取消注释的规则要测试,然后浏览Default.aspx 和 ViewEvent.aspx 页来查看输出的显示类似。
  • MyEvent.cs 文件– 位于 App_Data 文件夹中。这在中使用ViewEvents.aspx 页以触发自定义事件。
  • Default.aspx 文件– 将引发 System.NullReferenceException 若要查看哪些未处理异常日志。
  • TemplateemailProvider 示例使用EmailTemplateTest.aspx 文件)。代码隐藏文件EmailTemplateTest.aspx 文件使用了几行代码为您取消可以注释其中将导致引发异常的页。

如何存储事件到事件查看器

我前面所述,日志中的事件提供程序事件查看器将为您配置全局 Web.config 文件中。默认情况下根据WebBaseErrorEventWebFailureAuditEvent的所有事件都记录。您可以将其他规则添加到其他日志信息记录到事件日志。例如,如果您想要记录所有事件(即基于WebBaseEvent的每个事件),可以向 Web.config 文件添加以下规则:
<healthMonitoring>
	<rules>
		<add name="All Events" eventName="All Events" provider="EventLogProvider" profile="Critical"  />
	</rules>
</healthMonitoring>
此规则将链接的所有事件的事件映射到的事件日志提供程序。这两个 eventMapping 和提供程序包含在全局 Web.config 文件中。然后,您可以使用要通过浏览页面生成的事件触发的 ViewEvents.aspx 页。"页也会触发MyEventPage_Load 和按钮单击事件中的自定义事件。

若要查看生成的数据的类型,请浏览Default.aspx 页。此操作将引发一个System.NullReferenceException的例外,并将事件中记录以下事件查看器:

事件类型: 警告
事件源: ASP.NET2.0.50601.0
事件类别: Web 事件
事件 ID: 1311年
日期:2005 年 8 月 16 日
时间: 下午 9: 37: 44
用户: 不适用
计算机: 计算机名称
说明:
事件代码:3005
事件消息: 发生了未处理的异常。
活动时间:2005 年 8 月 16 日下午 9: 37: 44
事件时间 (UTC): 2005 年 8 月 17 日上午 2: 37: 44
事件 ID:88838b4e73cf4a0d9a36ac737ff9d1a0
事件序列: 39
事件匹配项:1
事件详细信息代码: 0
应用程序信息: 应用程序域:d047d537-2-127687190240098660
信任级别: 完全
虚拟应用程序路径: /WebSite3
应用程序路径: 物理路径
计算机名: 计算机名称
处理信息: 进程 ID: 3776
进程的名称:WebDev.WebServer.EXE
帐户名称: 域 \ 用户
异常信息:异常类型: NullReferenceException
异常消息: 对象引用未设置到对象的实例。
请求的信息: 请求 URL:http://localhost:1698/WebSite3/Default.aspx
请求的路径:/WebSite3/Default.aspx
用户主机地址: 127.0.0.1
用户:域 \ 用户
进行身份验证: 真
身份验证类型: NTLM
线程帐户名称: 域 \ 用户
线程信息:
线程 ID: 8
线程帐户名称: 域 \ 用户
正在模拟: False

堆栈跟踪: 在在 c:\Documents _Default.Page_Load (EventArgs e 对象发件人) 和Settings\user\Desktop\WebEvents\WebSite3\WebSite3\Default.aspx.cs:line15
在 System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp,对象o,对象 t,EventArgs e)
在System.Web.Util.CalliEventHandlerDelegateProxy.Callback (对象发件人,EventArgs) e
在位于 System.Web.UI.Control.OnLoad (EventArgs e)System.Web.UI.Control.LoadRecursive()
在System.Web.UI.Page.ProcessRequestMain (布尔 includeStagesBeforeAsyncPoint,布尔 includeStagesAfterAsyncPoint)

自定义事件的详细信息: 有关的详细信息信息,请参阅帮助和支持中心http://support.microsoft.com。

在事件日志中记录所有事件生成信息性事件也。下面的事件显示 URL要想取得成功的页请求的授权:

事件类型: 信息
ASP.NET 事件源: 2.0.50601.0
事件类别: Web事件
事件 ID: 1314年
日期: 2005/8/16
时间: 11: 04: 44 PM
用户:N/A
计算机: 计算机名称
说明:
事件代码: 4003
事件消息: URL请求的授权成功。
事件时间: 2005 年 8 月 16 日 11: 04: 44下午
事件时间 (UTC): 2005 年 8 月 17 日上午 4: 04: 44
事件 ID:fec3d73fba0247eaba425e5ccfada18e
事件序列: 2
事件匹配项:1
事件详细信息代码: 0
应用程序的信息:
应用程序域:d047d537-1-127687250829701433
信任级别: 完全
虚拟应用程序路径: /WebSite3
应用程序路径: C:\Documents 和Settings\user\Desktop\WebEvents\WebSite3\WebSite3\
计算机名: 计算机名称
进程信息:
进程ID: 2292年
进程名称: WebDev.WebServer.EXE
帐户名称:域 \ 用户
请求的信息:
请求的 URL:http://localhost:2087/WebSite3/Default.aspx
请求的路径:/WebSite3/Default.aspx
用户主机地址: 127.0.0.1
用户:域 \ 用户
进行身份验证: 真
身份验证类型: NTLM
线程帐户名称: 域 \ 用户

自定义事件的详细信息:
有关的详细信息信息,请参阅帮助和支持中心http://support.microsoft.com。

如何存储到 SQL Server 事件

此方法使用由 Aspnet_regsql.exe 工具生成的ASPNETDB数据库中。"默认提供程序使用 LocalSqlServer 连接字符串,它使用两种在 App_data 文件夹中或本地为 SQLExpress 的实例的基于文件的数据库SQL Server。LocalSqlServer 连接字符串和 SqlProvider 都是配置全局 Web.config 文件中。

LocalSqlServer全局 Web.config 文件中的连接字符串如下所示:
<connectionStrings>
	<add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" />
</connectionStrings>
如果您想要使用另一台 SQL Server 的服务器,您将需要使用Aspnet_regsql.exe 工具,可以在中找到%windir%\Microsoft.Net\Framework\v2.0.*\Aspnet_regsql.exe 文件夹。使用Aspnet_regsql.exe 工具来生成自定义ASPNETDB数据库的 SQL Server 服务器上,然后添加连接字符串为您的应用程序的.config 文件,然后使用新添加的提供程序连接字符串。创建的ASPNETDB数据库后,您将需要设置一个规则,若要链接sqlProvider 到 eventMapping。

若要配置自定义数据库,请按照下列步骤操作:
  1. 生成一个ASPNETDB的数据库。
    1. 运行 aspnet_regsql.exe-W,然后遍历向导。
    2. 运行命令来自动执行此过程: Aspnet_regsql– A w – s 而言 SQL Server -E。
  2. 添加一个连接字符串指向的数据库中,因此,它类似于:
    <connectionStrings>
    	<add name="MYASPNETDB" connectionString="Server=<SQL Instance>;Integrated Security=SSPI;Database=aspnetdb"/>
    </connectionStrings>
  3. 添加提供程序可以使用 MYASPNETDB 连接字符串,因此它类似于:
    <healthMonitoring>
    	<providers>
    		<add name="MySqlWebEventProvider" type="System.Web.Management.SqlWebEventProvider" connectionStringName="MYASPNETDB" maxEventDetailsLength="1073741823" buffer="false"/>
    	</providers>
    </healthMonitoring>
您是否使用默认的 SqlProvider 或配置您自己提供程序,您将需要添加一条规则将事件映射具有的提供程序的链接。"以下规则链接到的所有事件的事件映射,上述步骤中创建新的提供程序。此规则将基于WebBaseEvent的所有事件都日志并将它们发送到将使用 MySqlWebEventProviderMYASPNETDB 连接字符串。下面的代码添加一个规则,若要链接提供程序与一个事件映射:
<healthMonitoring>
	<rules>
		<add name="All Events" eventName="All Events" provider="MySqlWebEventProvider" profile="Critical"/>
	</rules>
</healthMonitoring>
如果您希望只将错误发送到 SQL Server,则可以添加以下规则:
<add name="All Errors" eventName="All Errors" provider="MySqlWebEventProvider" profile="Critical"/>

如何将事件转发到 WMI

您还可以将事件转发到 WMI。WMI 提供程序默认情况下配置全局 Web.config 文件中为您。

"下面的代码示例添加一个规则,以将事件转发到 WMI:
<providers>
	<add name="WmiWebEventProvider" type="System.Web.Management.WmiWebEventProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
您将需要添加要关联到 eventMapping 规则提供程序,以及要侦听的事件的 WMI 侦听器应用程序。"下面的代码示例添加一个规则,若要链接到的所有事件的事件映射的 WMI 提供程序:
<rules>
	<add name="All Events" eventName="All Events" provider="WmiWebEventProvider" profile="Critical"  />
</rules>
SampleASPNET 示例控制台应用程序使用ManagementEventWatcher对象来监视事件并将其显示在控制台中窗口。
若要使用 SampleASPNET,请按照下列步骤操作:
  1. 开始 SampleASPNET.exe。
  2. 浏览 ViewEvents.aspx 页 ;执行操作时,您将看到控制台应用程序中列出的事件。
  3. 单击 日志事件 Button_Click.页将回发,然后可以看到还记录的其他事件。
收起这个图片展开这个图片
893664
注意如果要监视的远程计算机上,侦听事件需要在该计算机上具有管理员帐户身份运行应用程序访问。

如何转发事件的电子邮件

您还可以转发电子邮件的事件。这将允许您获取有关您的应用程序直接在您 (可能溢出) 中的信息收件箱。事件规则您将映射到您的电子邮件提供商,为要小心您可以将无意中发送自己较大的可能是更好的信息适用于 SQL Server 或事件日志。

有两个电子邮件提供程序 SimpleMailWebEventProvider 和 TemplatedMailWebEventProvider。每个具有相同配置的属性,除了"模板"和"detailedTemplateErrors"属性,这仅在上TemplatedMailWebEventProvider。

注意这些电子邮件提供程序都不会为您进行配置。您将需要将它们添加到 Web.config 文件。

之间的区别这些两个电子邮件提供程序是 SimpleMailWebEventProvider 以发送电子邮件不能修改常规模板。示例 Web.config 文件中添加此电子邮件提供程序使用以下配置的提供程序的列表规则:
<add name="mySimple-mailWebEventProvider" type="System.Web.Management.Simple-mailWebEventProvider"
to="e-mail@foo.com" from="e-mail@foo.com" maxMessagesPerNotification="1" maxEventsPerMessage="10"
buffer="true" bufferMode="Critical Notification"
subjectPrefix="Web Events"/>
此外将添加以下规则将电子邮件提供程序的所有事件的事件映射到:
<add name="All Events" eventName="All Events" provider="mySimple-mailWebEventProvider" profile="Critical"/>
电子邮件警报消息是如下所示:
主题: 事件通知 12,第 1 部分: Web在收到 EventsMicrosoft.Samples.WebEvents.MyEvent 事件/ WebSite3

** 应用程序信息**
---------------
应用程序域: d047d537-9-127687218865923053信任级别: 完全应用程序虚拟路径: WebSite3 应用程序路径:C:\Documents 和 Settings\user\Desktop\WebEvents\WebSite3\WebSite3\ 机名称:<computer name="">

** 事件 **
---------------
事件代码: 100010
事件消息: Button1_Click
事件时间: 2005 年 8 月 16 日10: 12: 52 PM
事件时间 (UTC): 2005 年 8 月 17 日上午 3: 12: 52
事件 ID:6e5cd252d6114a9e98687598dc6b5d50 事件序列: 12 事件匹配项: 5 个事件详细信息代码: 0

自定义事件详细信息:

---------------</computer>
以下是电子邮件通知显示未处理的异常的消息:
主题:事件通知 7,第 1 部分: Web在收到 EventsSystem.Web.Management.WebRequestErrorEvent 事件/ WebSite3

** 应用程序信息**
---------------
应用程序域: d047d537-5-127687293149504903信任级别: 完全应用程序虚拟路径: WebSite3 应用程序路径:C:\Documents 和 Settings\user\Desktop\WebEvents\WebSite3\WebSite3\ 机名称:<computer name="">

** 事件 **
---------------
事件代码: 3005
事件消息: 发生了未处理的异常。
事件时间: 2005 年 8 月 17 日上午 12: 17: 37
事件时间 (UTC): 2005 年 8 月 17 日 5: 17: 37上午
事件 ID: 14b7f24102e140bbbae302d80e5a5f36 事件序列: 7 事件匹配项: 1 事件详细信息代码: 0

进程信息:
进程ID: 2292年
进程名称: WebDev.WebServer.EXE
帐户名称:域 \ 用户

异常信息:
异常类型:System.NullReferenceException
异常消息: 未设置对象引用到对象的实例。

请求的信息:
请求的 URL:http://localhost:2087/WebSite3/Default.aspx
请求的路径:/WebSite3/Default.aspx
用户主机地址: 127.0.0.1
用户:域 \ 用户
进行身份验证: 真
身份验证类型: NTLM
线程帐户名称: 域 \ 用户

线程信息:
线程 ID:7
线程帐户名: 域 \ 用户
正在模拟: False
堆栈跟踪: 在 c:\Documents 的 _Default.Page_Load (EventArgs e 对象发件人) 和Settings\user\Desktop\WebEvents\WebSite3\WebSite3\Default.aspx.cs:line15
在 System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp,对象o,对象 t,EventArgs e)
在System.Web.Util.CalliEventHandlerDelegateProxy.Callback (对象发件人,EventArgs) e
在位于 System.Web.UI.Control.OnLoad (EventArgs e)System.Web.UI.Control.LoadRecursive()
在System.WebUI.Page.ProcessRequestMain (布尔 includeStagesBeforeAsyncPoint,布尔 includeStagesAfterAsyncPoint)</computer>
TemplatedMailWebEventProvider允许您为 — 您猜对了 — 模板指定的 ASPX 页。"正文中的电子邮件,使您能够使用 ASPX 页面的输出接收的数据的外观进行自定义。

示例应用程序使用下面的代码将 TemplatedMailWebEventProvider 添加到 Web.config文件和 EmailTemplateTest.aspx 页指定为模板。(EmailTemplateTest.aspx 页中循环缓冲区中可用的事件并将它们显示在一个表中。
<add name="myTemplatedMailWebEventProvider" type="System.Web.Management.TemplatedMailWebEventProvider"
to="e-mail@foo.com" from="e-mail@foo.com " buffer="true"
bufferMode="Critical Notification" maxMessagesPerNotification="10" maxEventsPerMessage="10"
template="e-mailTemplateTest.aspx" detailedTemplateErrors="false" />
电子邮件警报消息是如下所示:
主题: 事件通知第 3 部分中接收事件 1: 10/ WebSite3

事件源时间代码详细信息代码信息
4System.Web.Security.UrlAuthorizationModule 2005 年 8 月 17 日上午 12: 40: 45 4003 0 URL请求的授权成功。
2005 年 4 8/17 日上午 12: 40: 45 4004 0请求的文件授权成功。
7 个 ASP。ViewEvents_aspx2005 年 8 月 17 日上午 12: 40: 45 100010 0 加载 webevent 示例页
8ASP。ViewEvents_aspx 2005 年 8 月 17 日上午 12: 40: 45 100010 0 Button1_Click
5SystemWeb.Security.UrlAuthorizationModule 2005 年 8 月 17 日上午 12: 40: 45 4003 0 URL请求的授权成功。
2005 年 5 8/17 日上午 12: 40: 45 4004 0请求的文件授权成功。
9 ASP。ViewEvents_aspx2005 年 8 月 17 日上午 12: 40: 45 100010 0 加载 webevent 示例页
10ASP。ViewEvents_aspx 2005 年 8 月 17 日上午 12: 40: 45 100010 0 Button1_Click
6System.Web.Security.UrlAuthorizationModule 2005 年 8 月 17 日上午 12: 40: 46 4003 0 URL请求的授权成功。
2005 年 6 8/17 日上午 12: 40: 46 4004 0请求的文件授权成功。
在这两种情况下,如果缓冲区属性为 false,电子邮件将包含只能有一个事件。与缓冲设置为 true,您还需要指定 bufferMode,它指示如何经常刷新缓冲区。在全球有一些默认 bufferModesWeb.config 文件。

如果 detailedTemplateErrors ="true",则任何错误发生在执行时将发送该模板的正文中电子邮件。如果 detailedTemplateErrors ="false",发送一般性错误。

A详细的错误引发的 EmailTemplateTest.aspx 如下所示:
中的服务器错误 / WebSite3 应用程序。

未处理用来创建模板页的执行过程中出现异常此事件通知。此消息属于 1 事件被丢弃。

说明: 在出现未处理的异常执行当前 web 请求。请检查堆栈跟踪,有关的详细信息有关错误和来源于中的信息代码。

异常的详细信息: System.Web.HttpException: 会话状态可以启用被设置为 true,则在配置中的任何一个时,才使用文件或 Page 指令中。此外请确定的System.Web.SessionStateModule 或自定义会话状态模块包含在<configuration>\<system.web>\<httpModules>中的一节应用程序配置。

源文件: c:\Documents 和Settings\user\Desktop\WebEvents\WebSite3\WebSite3\e-mailTemplateTest.aspx.cs行: 17

堆栈跟踪: [HttpException (0x80004005): 会话状态可以启用被设置为 true,则在配置中的任何一个时,才使用文件或 Page 指令中。此外请确定的System.Web.SessionStateModule 或自定义会话状态模块包含在<configuration>\<system.web>\<httpModules>中的一节应用程序配置]。
System.Web.UI.Page.get_Session()+146
在 e-mailTemplateTest.Page_Load(Object sender, EventArgs e)c:\Documents 和Settings\user\Desktop\WebEvents\WebSite3\WebSite3\e-mailTemplateTest.aspx.cs:17
System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtrfp,对象 o,对象 t,EventArgs e)+ 13
System.Web.Util.CalliEventHandlerDelegateProxy.Callback (对象发件人,EventArgs e) + 45
System.Web.UI.Control.OnLoad (EventArgs e)+ 80
SystemWeb.UI.Control.LoadRecursive()+ 49
System.Web.UI.Page.ProcessRequestMain (布尔值includeStagesBeforeAsyncPoint,布尔 includeStagesAfterAsyncPoint)+3749

[HttpUnhandledException (0x80004005): 类型的异常System.Web.HttpUnhandledException 是引发。]
System.Web.UI.Page.HandleError (异常 e)+929
System.Web.UI.Page.ProcessRequestMain (布尔值includeStagesBeforeAsyncPoint,布尔 includeStagesAfterAsyncPoint)+7864
System.Web.UI.Page.ProcessRequest (布尔值includeStagesBeforeAsyncPoint,布尔 includeStagesAfterAsyncPoint)+229
System.Web.UI.Page.ProcessRequest()+ 12
System.Web.UI.Page.ProcessRequest (HttpContext 上下文)+ 80
System.Web.HttpServerUtility.ExecuteInternal (IHttpHandler 处理程序,TextWriter 编写器,布尔 preserveForm,VirtualPath 路径,VirtualPath文件路径字符串 physPath、 异常错误,字符串 queryStringOverride)+1012

[HttpException (0x80004005): 错误执行子请求/ WebSite3/e-mailTemplateTest.aspx。]
System.Web.HttpServerUtility.ExecuteInternal (IHttpHandler处理程序、 TextWriter 编写器、 布尔 preserveForm、 VirtualPath 的路径,VirtualPath文件路径字符串 physPath、 异常错误,字符串 queryStringOverride)+1525
System.Web.HttpServerUtility.Execute (字符串路径、 TextWriter 编写器,布尔 preserveForm)+754
System.Web.HttpServerUtility.ExecuteLocalRequestAndCaptureResponse (字符串路径、 编写器 TextWriter、 ErrorFormatterGenerator errorFormatterGenerator)+249</httpModules></system.web></configuration></httpModules></system.web></configuration>
如果该属性为 false,并且没有错误,您将只出现一般错误消息,如下所示:
服务器中的错误 / WebSite3 应用程序。

发生了未处理的异常用于创建此事件的模板页执行的过程中通知。此消息的一部分的 8 个事件是被丢弃。

说明: 将当前的配置阻止从在此消息中包含异常详细信息。添加"detailedTemplateErrors = true"属性为提供程序配置,可以启用要报告的异常详细信息。
注意对于缓冲相关的属性,每次刷新结果通知。如果刷新包含多于maxEventsPerMessage允许更多的事件,通知将分割为多个电子邮件,但它们仍视为是相同的通知。例如,刷新生成 13 事件,但maxEventsPerMessage只允许五个。您将得到三个电子邮件: 前两个电子邮件将每个包含五个事件,并且第三个电子邮件将包含三个事件。

如果有多个电子邮件比maxMessagesPerNotification允许,会丢弃一些事件。例如,如果您设置maxMessagesPerNotification 为两个,则使用与上面相同的maxEventsPerMessage ,您将只能收到两封电子邮件。事件的将在第三个电子邮件被删除。任何删除或截断通知将某个电子邮件中注明简单邮件提供程序。电子邮件的顶部会显示以下信息:
**警告 **
---------------
此剩余 10 个事件由于通知期将被丢弃的消息的最大数量每个允许超出了通知。(警告 ID: 101)
由于您具有电子邮件模板化提供程序的格式的控件,则必须若要自己检查跌落/截断并确定是否包含在中的该电子邮件。

注意因此,您必须配置邮件提供程序使用 System.Net.Mail,在 Web.config 文件中的 System.Net.Mail。

有关的详细信息有关 ASP.NET 设置架构,请访问以下 Microsoft 网站站点:
healthMonitoring 元素 (ASP.NET 设置架构)
http://msdn2.microsoft.com/library/2fwh2ss9(en-us,vs.80).aspx
有关在 ASP.NET 2.0 中的运行状况监视的详细信息,请访问下面的 Microsoft 网站:
如何使用 ASP.NET 2.0 中的运行状况监视
http://msdn2.microsoft.com/en-us/library/ms998306.aspx
一直以来,尽情地提交所需的主题的意见在将来解决列或使用知识文库 诚征意见 表单。

属性

文章编号: 893664 - 最后修改: 2012年11月30日 - 修订: 5.0
这篇文章中的信息适用于:
  • Microsoft ASP.NET 2.0
关键字:?
kbhowto kbasp kbmt KB893664 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 893664
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。
不再更新的 KB 内容免责声明
本文介绍那些 Microsoft 不再提供支持的产品。因此本文按“原样”提供,并且不再更新。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com