HOW TO:實作健康監視自訂提供者範例

更新:2007 年 11 月

主題自訂 ASP.NET 健康監視提供者範例中的範例說明如何建立處理 ASP.NET 健康事件的自訂提供者。程式碼範例示範了如何衍生自 BufferedWebEventProvider 類別,以建立將事件資訊寫入本機檔案的自訂提供者。

本範例刻意保持簡單,目的是讓您完全控制自訂提供者的基本機制。在現實情況中,您可以使用範例程式碼當做應用程式行為的預備探查工具,幫助自己了解 ASP.NET 健康監視提供的資訊。

範例提供者示範了下列功能:

  • 繼承自 BufferedWebEventProvider 以建置自訂提供者。這個提供者包含在記錄之前,根據各種因素 (例如指定時間間隔) 儲存事件資訊的能力。

  • 設定自訂提供者。

  • 當做 Windows 事件檢視器的介面。

如果要執行這個範例,則需要下列項目:

若要建置自訂事件提供者

  • 將自訂事件提供者編譯為程式庫,並且放在 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 安裝資料夾中。

若要設定應用程式使用範例

  1. 如果應用程式的根資料夾中已經有一個名稱為 Web.config 的檔案,請開啟它。否則,請建立名為 Web.config 的文字檔並加入下列文字。

    <?xml version="1.0"?>
    <configuration xmlns="https://schemas.microsoft.com/.NetConfiguration/v2.0">
      <system.web>
      </system.web>
    </configuration>
    
  2. 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 事件

  1. 在瀏覽器中,從 Web 應用程式要求任何網頁。

    在應用程式中執行任何網頁會引發自訂事件。

  2. 若要檢視自訂事件資料,請開啟程式碼中 logFilePath 變數所指定的記錄檔。

請參閱

概念

自訂 ASP.NET 健康監視提供者範例

ASP.NET 健康監視事件概觀

參考

healthMonitoring 項目 (ASP.NET 設定結構描述)

EventLogWebEventProvider

其他資源

建立 ASP.NET 網站