在 ASP.NET 2.0 中的 web 事件

文章翻譯 文章翻譯
文章編號: 893664 - 檢視此文章適用的產品。
測試版的資訊
本文將告訴您 Microsoft 的 Beta 版本產品。這份文件中的資訊依現狀-接踵而來現況變更不另行通知。

沒有型式的產品支援這個 beta 版產品 Microsoft。如需有關如何取得支援資訊Beta 版本,請參閱隨附於 beta 版的文件產品檔案] 或 [核取存放所下載的 Web 位置釋放。
語音 ASP.NET 支援專欄
我們邀請您送出您有興趣的相關想法,來自訂您的需求,此資料行,並且您想要查看問題處理未來知識庫文件和 Support Voice 資料欄。您可以藉由提交您的想法和意見反應 要求 表單。此外,還有該表格底部本篇文章中的連結。
全部展開 | 全部摺疊

在此頁中

簡介

歡迎使用 ASP.NET Support Voice 資料行!我的名字Jerry 的 Orman。我已經向 Microsoft 五年,並且已經花費大部份的我時間專注於 Web 相關的技術,例如 FrontPage 和新SharePoint 技術。我曾經花費做為 ASP.NET 所使用的最後一年技術支援工程師。

在 [Support Voice 資料行中,這個月我描述新的 Web 事件功能提供即將發行的ASP.NET 2.0。

ASP.NET 2.0 Web 事件功能

提供在 ASP.NET 2.0 中的主要新服務有網頁健康監視系統所提供事件功能。藉由修改Web.config 檔中,您可以使用健康監視系統未處理的記錄檔您想要的例外狀況、 過期的表單、 驗證票證、 以及任何其他資料登入您的應用程式。此資料行可以帶領您開始 [使用網頁事件 」 的功能,而且也會提供如何使用各種的範例在 ASP.NET 2.0 的提供者。

記錄被透過定義規則與提供者產生關聯的事件。這個原則會定義事件的型別傳送給提供者。下列基底事件都可讓您若要記錄:
摺疊此表格展開此表格
WebBaseEvent所有事件的基底事件類別。包含所有的事件,事件程式碼中,事件詳細資料代碼,例如 required 屬性日期和時間引發事件,順序編號的事件訊息和事件詳細資料。
WebManagementEvent基底事件類別對於管理的事件例如應用程式存留期、 要求、 錯誤和稽核事件。
WebHeartbeatEvent在一般應用程式所產生的事件[間隔],以擷取實用執行階段狀態資訊。
WebAuditEvent基底類別所使用的安全性稽核事件,若要標記類似授權失敗、 解密失敗等等狀況
WebRequestEvent所有資訊要求事件基底類別。
WebBaseErrorEvent指示錯誤的所有事件的基底類別條件。
可用的提供者的型別可讓您要傳送輸出的事件以事件檢視器] 的 [SQL Server,開機 (WMI),以及電子郵件。預先設定的提供者和事件對應減少的數量若要取得事件記錄的輸出所需的工作。

ASP.NET 2.0 中,會使用事件記錄檔提供者-的現成啟動的應用程式定義域為基礎的事件記錄然後,未停止,以及記錄任何處理例外狀況。這有助於涵蓋某些基本的案例。例如,假設您的應用程式擲回例外狀況,但使用者並不會儲存錯誤,而且您無法重新產生它。使用預設的事件日誌規則,您就可以蒐集若要進一步了解哪一種錯誤的例外狀況和堆疊資訊發生。或者,如果您的應用程式正失去工作階段狀態,您可經由若要判斷是否回收應用程式定義域,以及使用原因的事件記錄檔應用程式定義域會在第一時間停止。

此外,健全狀況監視系統是可擴充的。例如,您可以定義自訂 Web 事件,在應用程式中引發,然後定義規則來傳送事件例如,您的電子郵件提供者的資訊。這可讓您輕鬆地將繫結健全狀況監視提供者追蹤記錄。舉個例子,您每次訂單處理和設定規則可以引發事件,將每個事件傳送到 SQL Server 資料庫中。您可能也會引發事件時在使用者無法登入多次在列中,並將事件設定為使用電子郵件為主的提供者。

預設提供者組態而事件會儲存在全域的 Web.config 檔案中。通用的 Web.config 檔案儲存所有網頁設定儲存在 Machine.config 檔在 ASP.NET 1 x。通用的 Web.config 檔案位於下列目錄:
%windir%\Microsoft.Net\Framework\v2.0.*\config\Web.config
全域 Web.config 檔案的 [ <healthMonitoring>] 區段提供預設的組態設定。您可以覆寫這些設定或設定您自己的設定,藉由實作<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 檔案– 觸發MyEvent自訂 web 事件在Page_Load 及事件記錄] 按鈕的 click事件。有使用中的資料庫連接,GridView若要列出的事件,記錄到 SQL Server 的 Web.config 檔。

    請務必您可以設定連接字串以指到您的ASPNETDB資料庫 Web.config 檔案中。
  • Web.config 檔– 具有所有各種不同提供者和設定規則,略過。取消註解若要測試,然後瀏覽的規則Default.aspx 和 ViewEvent.aspx 的頁面,以查看輸出的外觀類似。
  • MyEvent.cs 檔案– 位於 [App_Data] 資料夾。這用在若要引發自訂事件 ViewEvents.aspx 頁面。
  • Default.aspx 檔案– 若要查看哪些未處理的 System.NullReferenceException 就會擲回例外狀況的記錄檔。
  • EmailTemplateTest.aspx 檔案– 取樣用的 TemplateemailProvider。程式碼後置檔案取消註 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 頁面] 以瀏覽網頁所產生的事件觸發程序。的網頁也會引發Page_Load 和按鈕的 Click事件中的MyEvent自訂事件。

若要查看產生的資料型別,請瀏覽Default.aspx 網頁中。則會擲回System.NullReferenceException的例外狀況,並在事件中,將會記錄下列事件檢視器:

事件類型: 警告
事件來源: ASP.NET2.0.50601.0
事件類別: Web 事件
事件識別碼: 1311年
日期:2005 年 8 月 16 日
時間: 9: 37: 44 PM
使用者: n/A
電腦: 電腦名稱
描述:
事件的程式碼:3005
事件訊息: 發生未處理的例外狀況。
事件時間:2005 年 8 月 16 日下午 9: 37: 44
事件的時間 (UTC): 2005 年 8 月 17 日上午 2: 37: 44
事件識別碼:88838b4e73cf4a0d9a36ac737ff9d1a0
事件順序: 39
事件發生:1
事件詳細資料代碼: 0
應用程式資訊: 應用程式定義域:d047d537-2-127687190240098660
信任層級: 完整
虛擬應用程式路徑: /WebSite3
應用程式路徑: 實體路徑
機器名稱: 電腦名稱
處理序資訊: 處理程序識別碼: 3776
程序名稱:WebDev.WebServer.EXE
帳戶名稱: 網域 \ 使用者
例外狀況資訊:例外狀況型別: NullReferenceException
例外狀況訊息: 物件參考未設定為物件的執行個體。
要求資訊: 要求 URL:http://localhost:1698/WebSite3/Default.aspx
要求的路徑:/WebSite3/Default.aspx
使用者主機位址: 127.0.0.1
使用者:「 網域 \ 使用者
驗證:,則為 True
驗證類型: 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
事件類別: 網頁事件
事件識別碼: 1314年
日期: 8/16/2005
時間: 下午 11: 04: 44
使用者:N/A
電腦: 電腦名稱
描述:
事件程式碼: 4003
事件訊息: URL要求的授權成功。
事件時間: 2005 年 8 月 16 日 11: 04: 44PM
事件的時間 (UTC): 2005 年 8 月 17 日上午 4: 04: 44
事件識別碼: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
使用者:「 網域 \ 使用者
驗證:,則為 True
驗證類型: 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. 執行命令,以自動化程序: 形式– 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 篇: 網頁收到的 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
事件的時間 (UTC): 2005 年 8 月 17 日上午 3: 12: 52
事件識別碼: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): 8/17/2005年 5: 17: 37AM
事件識別碼: 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
使用者:「 網域 \ 使用者
驗證:,則為 True
驗證類型: NTLM
執行緒帳戶名稱: 網域 \ 使用者

執行緒資訊:
執行緒識別碼: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 8/17/2005年 12: 40: 45 AM 4003 0 的 URL要求的授權成功。
4 8/17/2005年 12: 40: 45 AM 4004 0要求的檔案授權成功。
7 ASP。ViewEvents_aspx2005 年 8 月 17 日上午 12: 40: 45 100010 0 載入 webevent 範例頁面
8ASP。ViewEvents_aspx 8/17/2005年 12: 40: 45 AM 100010 0 Button1_Click
5SystemWeb.Security.UrlAuthorizationModule 8/17/2005年 12: 40: 45 AM 4003 0 的 URL要求的授權成功。
5 8/17/2005年 12: 40: 45 AM 4004 0要求的檔案授權成功。
9 ASP。ViewEvents_aspx2005 年 8 月 17 日上午 12: 40: 45 100010 0 載入 webevent 範例頁面
10ASP。ViewEvents_aspx 8/17/2005年 12: 40: 45 AM 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",會傳送一般錯誤。

AEmailTemplateTest.aspx 所擲回的詳細的錯誤看起來如下:
發生伺服器錯誤 ' / WebSite3' 應用程式。

未處理用來建立的樣板頁面執行期間發生例外狀況此事件的告知。1 的事件屬於此訊息是捨棄。

描述: 期間發生未處理的例外狀況執行目前 web 要求。請檢閱堆疊追蹤,如需詳細資訊錯誤和中產生的位置的相關資訊程式碼。

例外狀況詳細資料: System.Web.HttpException: 工作階段狀態可以enableSessionState 設定為 true,在組態中的其中一個時,才使用檔案或頁面指示詞中。請也確定System.Web.SessionStateModule 或自訂工作階段狀態模組會併入<configuration>\<system.web>\<httpModules>一節中的應用程式組態。

原始程式檔: c:\Documents,Settings\user\Desktop\WebEvents\WebSite3\WebSite3\e-mailTemplateTest.aspx.cs行: 17

堆疊追蹤: [HttpException (0x80004005): 工作階段狀態可以enableSessionState 設定為 true,在組態中的其中一個時,才使用檔案或頁面指示詞中。請也確定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()馬歇爾
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只允許 5。就會出現三個電子郵件: 前兩個電子郵件將每個包含五種事件,和第三個電子郵件中包含三個事件。

如果有多個電子郵件超過允許的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
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:893664
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。
依現狀不再更新的知識庫內容免責聲明
本文旨在說明 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