国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設(shè)計 > 正文

ASP.NET 2.0 中 Web 事件

2019-11-18 17:05:28
字體:
供稿:網(wǎng)友

asp.net 2.0 還提供了全功能的應(yīng)用程序監(jiān)視和健康監(jiān)視。這個系統(tǒng)是由一個完全可擴展事件模型和一個能將事件發(fā)送到多種接收器的事件引擎組成的。舉例來說,您可以配置您的 ASP.NET 應(yīng)用程序來每天發(fā)送電子郵件,表明服務(wù)器正在運行并且包括可用內(nèi)存的數(shù)量。同樣,您可以創(chuàng)建一個鏈接到未處理異常的健康事件。異常內(nèi)容、請求標題以及時間和日期都可以被發(fā)送到一個錯誤日志記錄數(shù)據(jù)庫
ASP.NET 2.0 包含了內(nèi)置的事件,包括心跳、應(yīng)用程序生存期事件(啟動/停止/編譯)和錯誤陷阱事件(未處理異常)。不過,,您可以很容易地在這些基類之上進行構(gòu)建,以從應(yīng)用程序重創(chuàng)建并引發(fā)您自己的事件。舉例來說,您可能創(chuàng)建一個自定義的事件來記錄何時第一百個用戶單擊某一特定的鏈接。

ASP.NET 2.0 健康監(jiān)視系統(tǒng)真正強大的功能是,通過 web.config 和 machine.config 文件它是完全可配置的。使用正常的 xml,您能定義事件、定義提供程序(事件接收器),以及將特定的事件發(fā)送到特定的提供程序。

創(chuàng)建事件
事件在結(jié)構(gòu)上與異常是類似的。也就是說,除了作為一個消息容器,event 類本身幾乎沒有功能。在健康監(jiān)視方面,所有事件都從 Sytstem.Web.Management.WebBaseEvent 繼承。不過,您也可以從用于專用目的(如收集 HTTP 請求數(shù)據(jù)或處理異常)的高級基類派生。

列表 4. 自定義事件

using System;
using System.Web.Management;

public class CustomEvent : WebBaseEvent
{
  public const int EventCode = WebEventCodes.WebExtendedBase + 10;
  public MyEvent(string message, object eventSource)
                : base(message, eventSource, EventCode)
  { }
}

創(chuàng)建自定義事件的最重要部分是提供一個唯一的 EventCode。所有內(nèi)置事件代碼都在 WebEventCodes 枚舉中。自定義事件應(yīng)該有從 WebEventCodes.WebExtendedBase + 1 開始的數(shù)字。除此之外創(chuàng)建自定義事件中的唯一常見任務(wù)是正確地初始化事件。

使用事件
雖然內(nèi)置事件自動激發(fā),但您還是可以將代碼添加到應(yīng)用程序以在任何時候啟動自定義事件。

列表 5. 引發(fā)一個事件

<script runat="server">
   void Page_Load(Object sender, EventArgs e)
   { // Raise a custom event MyEvent myEvent =
          new MyEvent("loading webevent sample page", this); myEvent.Raise(); }
</script>

當您從 ASP.NET 頁面引發(fā)一個事件時,您只是創(chuàng)建該事件的一個新實例然后執(zhí)行 Raise() 方法。Raise() 方法將事件實例自動傳遞到健康監(jiān)視引擎。然后此引擎將該事件映射到配置文件和提供程序,并將該事件移交給正確的提供程序。提供程序最終將事件傳遞到正確的接收器。

配置健康監(jiān)視
健康監(jiān)視是在 machine.Config 或 Web.Config 文件中的新的 區(qū)域配置的。您可以配置 部分來設(shè)置一個周期性報告應(yīng)用程序狀態(tài)的 Web 檢測信號。您也可以配置應(yīng)用程序來生成事件,并將該事件通過各種提供程序傳遞。

配置事件
必須在事件映射區(qū)域標識每個事件。事件通過唯一名稱和完整類型被標識。事件名稱在規(guī)則區(qū)域是作為鏈接來使用的。

列表 6. 事件映射區(qū)域

<!-- Event mappings define the events that are monitored -->
<eventMappings>
     <add name="SampleWebRequests"
          type="Samples.AspNet.SampleWebRequestEvent, SampleWebRequestEvent,
                Version=0.0.0.0, Culture=neutral, PublicKeyToken=f0c63b9a560d5e5a"/>
</eventMappings>

ASP.NET 2.0 附帶幾個內(nèi)置事件,配置為下列名稱:

• 所有事件。所有事件名稱捕獲任何 WebBaseEvent。這個事件類別是對被健康監(jiān)視系統(tǒng)捕獲的每個事件的一個廣泛的 catch-all。
 
• 檢測信號。檢測信號事件使用 WebHeartBeatEvent 提供關(guān)于 Web 應(yīng)用程序狀態(tài)的定期通知。
 
• 應(yīng)用程序生存期事件。應(yīng)用程序生存期事件包括啟動和停止應(yīng)用程序,以及重新編譯應(yīng)用程序的部分或全部。這些事件是基于 WebapplicationLifetimeEvent 的,并且在 lifetime 事件發(fā)生時,報告日期、時間和當前的狀態(tài)。
 
• 所有錯誤。所有錯誤類別收集系統(tǒng)檢測到的任何異常或錯誤。這些事件是基于 WebBaseErrorEvent 的。
 
• 基礎(chǔ)結(jié)構(gòu)錯誤。使用 WebErrorEvent 捕獲與 ASP.NET 運行庫或 IIS 相關(guān)的錯誤。這些事件是所有錯誤類別的子類,并且主要與系統(tǒng)管理員而不是應(yīng)用程序開發(fā)者相關(guān)。
 
• 請求處理錯誤。在請求期間發(fā)生的任何錯誤或異常都會觸發(fā)一個 WebRequestErrorEvent。這個事件記錄了進入的請求以及與處理該請求相關(guān)聯(lián)的錯誤。請求處理錯誤也是所有錯誤類別的一個子集。
 
• 所有審核。可使用健康監(jiān)視系統(tǒng)通過 WebAuditEvent 提供審核嘗試。這個事件自動記錄 Web 應(yīng)用程序中活動用戶的操作。如果您正在使用模擬,審核事件將幫助您對誰在使用您的應(yīng)用程序,以及他們是如何在使用保持跟蹤。
 
• 失敗審核。WebFailureAuditEvent 是一個特殊的審核事件類型,當一個用戶試圖使用無效的用戶名或密碼登錄您的 Web 站點時,它就會被觸發(fā)。當一個對于指定資源用戶是無法驗證的時候,此事件也會發(fā)生。
 
• 成功審核。WebSuccessAuditEvent 是失敗事件的對應(yīng),只要用戶已驗證或執(zhí)行一些其他需要審核記錄的操作就會發(fā)生。
 

自定義事件是易于創(chuàng)建的,盡管您必須向您的應(yīng)用程序添加代碼來引發(fā)事件。

配置提供程序
每個提供程序都必須在配置文件中注冊。注冊一個提供程序需要應(yīng)用程序的唯一名稱和類型。這個類型包含了實際 PRovider 類的完整強名稱 (strong name)。提供程序的名稱被用作規(guī)則區(qū)域中的一個鏈接。

列表 7. 提供程序

<healthMonitoring Enabled="true" heartBeatInterval="0">
 <!-- Providers link health events to various targets such as WMI or SMTP email -->
   <providers>
      <add name="WmiEventProvider" type="System.Web.Management.WebWmiEventProvider,
          System.Web,Version=1.2.3400.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
  </providers>

ASP.NET 2.0 附帶有 WMI、Windows 事件監(jiān)視器、SMTP 電子郵件和 SQL Server 數(shù)據(jù)庫的提供程序。通過擴展正確的基類,可以創(chuàng)建自定義提供程序來連接到其他事件接收器。

將事件映射到提供程序

配置健康監(jiān)視的最后一步是,用規(guī)則將事件連接到提供程序。規(guī)則提供了在好的事件名稱、事件類、提供程序和事件配置文件或者類別之間的一個鏈接。您也可以使用規(guī)則來定義啟動特定的事件的一個最短時間間隔。

列表 8. 規(guī)則

<!-- Rules link events to providers and profiles, and define intervals for event checking -->
<rules>
    <add name="Custom Database Events" eventName="CustomDBEvents"
         provider="WmiEventProvider" profile="Database" minInterval="00:01:00" />
    <add name="Standard Web Requests" eventName="All Events"
         provider="SqlEventProvider" profile="Default" minInterval="00:01:00" /> </rules>
</healthMonitoring>
 

規(guī)則執(zhí)行由不同屬性配置的若干不同任務(wù):

• name。規(guī)則名稱是友好名稱,它會在事件被發(fā)送到接收器時出現(xiàn)。
 
• eventName。eventName 映射到一個在 區(qū)域中配置的事件。
 
• provider。提供程序是一個到在 區(qū)域中配置的提供程序的鏈接。任何匹配這個規(guī)則的事件將通過這個提供程序傳遞給由該提供程序支持的目標。舉例來說,System.Web.Management.SqlWebEventProvider 會自動將事件寫入到 SQL Server 數(shù)據(jù)庫。
 
• profile。不同的提供程序?qū)⑴渲梦募傩宰鳛轱@示事件的過濾器來使用。舉例來說,電子郵件提供程序可能立即為任何帶有“緊急”配置文件的事件發(fā)送一個消息,但是也可能只發(fā)送帶有該日“例行”配置文件事件的匯編的日常電子郵件。
 
• minInterval。一些事件,如檢測信號,必須在最短的時間間隔內(nèi)激發(fā)。您可以使用這個屬性來設(shè)置最小事件時間間隔。
 

通過這個配置區(qū)域,您可以設(shè)置各種健康相關(guān)事件,并將事件映射到各種提供程序。舉例來說,您可能設(shè)置一個檢測信號,每 10 分鐘發(fā)送一個 WMI 事件。同樣,您可以為任何未捕獲的異常設(shè)置一個電子郵件警報。

相關(guān)文章:
http://support.microsoft.com/default.aspx?scid=kb%3Bzh-cn%3B893664
http://blog.csdn.net/dshpsky/archive/2006/06/18/810893.aspx


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 浪卡子县| 襄汾县| 修水县| 桃园市| 夏津县| 綦江县| 京山县| 新宾| 林口县| 大渡口区| 德格县| 嘉黎县| 大名县| 莫力| 扶绥县| 渝中区| 平武县| 建始县| 虞城县| 文成县| 体育| 青海省| 浪卡子县| 澄迈县| 江孜县| 息烽县| 莫力| 丁青县| 兴文县| 石柱| 区。| 安西县| 灵台县| 佛冈县| 将乐县| 达日县| 社会| 庐江县| 三穗县| 遵义县| 垫江县|