HOW TO:實作健康監視自訂提供者範例
更新:2007 年 11 月
主題自訂 ASP.NET 健康監視提供者範例中的範例說明如何建立處理 ASP.NET 健康事件的自訂提供者。程式碼範例示範了如何衍生自 BufferedWebEventProvider 類別,以建立將事件資訊寫入本機檔案的自訂提供者。
本範例刻意保持簡單,目的是讓您完全控制自訂提供者的基本機制。在現實情況中,您可以使用範例程式碼當做應用程式行為的預備探查工具,幫助自己了解 ASP.NET 健康監視提供的資訊。
範例提供者示範了下列功能:
繼承自 BufferedWebEventProvider 以建置自訂提供者。這個提供者包含在記錄之前,根據各種因素 (例如指定時間間隔) 儲存事件資訊的能力。
設定自訂提供者。
當做 Windows 事件檢視器的介面。
如果要執行這個範例,則需要下列項目:
在執行 Web 應用程式的伺服器上安裝網際網路資訊服務。如需詳細資訊,請參閱 HOW TO:在 IIS 5.0 和 6.0 中建立和設定虛擬目錄,或在 https://www.microsoft.com/taiwan 上搜尋「網際網路資訊服務」。
ASP.NET Web 應用程式。
若要建置自訂事件提供者
將自訂事件提供者編譯為程式庫,並且放在 Web 應用程式的 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\versionNumber 的 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 項目中的設定會使用提供者項目加入自訂提供者,並指定設定檔項目 (在上述情形中),藉由限制能夠引發事件的次數保護伺服器。本範例也包含規則項目,使事件與設定檔和提供者產生關聯。
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 設定結構描述)