自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ASP.NET項目開發(fā)中健康監(jiān)視淺析

開發(fā) 后端
ASP.NET項目開發(fā)中健康監(jiān)視向你介紹了什么是ASP.NET項目開發(fā)中的健康監(jiān)視,以及ASP.NET項目開發(fā)中健康監(jiān)視是如何實現(xiàn)的。

健康監(jiān)視(Health Monitoring),Health Monitoring是ASP.NET2.0以后版本添加的新的特性。它可以允許開發(fā)人員監(jiān)視應(yīng)用程序中發(fā)生的異常的事件。而且監(jiān)視應(yīng)用程序的啟動,關(guān)閉,驗證等都有相對應(yīng)的事件來監(jiān)視。而且我們還可以創(chuàng)建自定義的事件來監(jiān)視應(yīng)用程序中的特定的部分。我們也可以在Health Monitoring中配置把應(yīng)用程序中的異常是記錄在系統(tǒng)的日志中還是Sql Server中,或者是以Email形式發(fā)送出去。最重要的一點就是:只要通過配置,我們可以少寫,甚至不寫代碼就可以實現(xiàn)強大的異常處理策略(和類似Enterprise Application Blocks,我們后面會提到的)。

同樣,我們還是在web.config中添加配置,在system.web節(jié)點中添加﹤healthMonitoring /﹥節(jié)點:

默認(rèn)情況下是禁用的,我們啟用就應(yīng)該如下:

ASP.NET項目開發(fā)中健康監(jiān)視Code1

  1. ﹤healthMonitoring enabled=”true﹥  
  2.   ﹤eventMappings﹥﹤/eventMappings﹥  
  3.   ﹤providers﹥﹤/providers﹥  
  4.   ﹤rules﹥..﹤/rules﹥  
  5.   ﹤profiles﹥..﹤/profiles﹥  
  6.   ﹤bufferModes﹥..﹤/bufferModes﹥  
  7.  ﹤/healthMonitoring﹥ 

下面就看看該節(jié)點下的一些配置:

eventMappings節(jié)點通過指定事件類型來注冊事件類。也就說,要注明我們在應(yīng)用程序中要監(jiān)聽哪些事件,如下配置:

  1. ﹤eventMappings﹥  
  2.   ﹤clear /﹥  
  3.   ﹤add name=”CustomException” type=”System.Web.Management.WebBaseErrorEvent” /﹥  
  4.  ﹤/eventMappings﹥ 

前面的"name"屬性是我們自己為后面的事件取的友好的名稱,從﹤eventMappings﹥的字面意思也可以知道:事件的映射。

后面的"type"就是我們要在程序中監(jiān)聽的事件。之前也說過,我們可以監(jiān)聽很多的事件:系統(tǒng)的啟動,關(guān)閉,驗證失敗等。

如上所見:"System.Web.Management.WebBaseErrorEvent" 是所有事件的基類。它的子類有很多:

WebApplicationLifetimeEvent--在應(yīng)用程序的運行過程觸發(fā)的事情,如,當(dāng)應(yīng)用程序開啟,關(guān)閉時

WebAuthenticationFailureAuditEvent--當(dāng)ASP.NET驗證失敗是觸發(fā)

WebAuthenticationSuccessAuditEvent--驗證成功時觸發(fā)

WebRequestErrorEvent--請求出錯時觸發(fā)

除此之外,我們還可以自定義一些類,派生自基類。

當(dāng)我們確定了要監(jiān)聽的事件之后,我們就要選擇事件的provider,也就說,事件觸發(fā)后,我們把事情的信息記錄到那里。
配置如下:

  1. ﹤providers﹥  
  2.  ﹤clear /﹥  
  3.  ﹤add name=”EventLogProvider” type=”System.Web.Management.EventLogWebEventProvider” /﹥  
  4. ﹤/providers﹥ 

這之前一樣:System.Web.Management.EventLogWebEventProvider是個基類,有很多的子類,這些子類可以使得我們把異常的記錄在如sql數(shù)據(jù)庫中,系統(tǒng)日志中等:

SqlWebEventProvider--把異常信息記錄到數(shù)據(jù)庫中的提供程序

SimpleMailEventProvider--把異常信息通過Email發(fā)送的提供程序

還有一些,大家參看MSDN。

好了,到這里,我們把要監(jiān)聽的事件選擇好了,如要監(jiān)聽WebApplicationLifetimeEvent,WebRequestErrorEvent;而且我們也準(zhǔn)備把異常系統(tǒng)通過Email發(fā)送,我們選擇了SimpleMailEventProvider,通過也想把異常記錄到數(shù)據(jù)庫中,我們也選擇了SqlWebEventProvider。那么我們的配置就如下:

ASP.NET項目開發(fā)中健康監(jiān)視Code2

  1. ﹤healthMonitoring enabled=”true﹥  
  2.   ﹤eventMappings﹥  
  3.    ﹤clear /﹥  
  4.    ﹤add name=”CustomException” type=”System.Web.Management.WebApplicationLifetimeEvent” /﹥  
  5.    ﹤add name=”AnotherException" type=”System.Web.Management.WebRequestErrorEvent” /﹥  
  6.   ﹤/eventMappings﹥  
  7.  
  8.   ﹤providers﹥  
  9.    ﹤clear /﹥  
  10.    ﹤add name=”EmailProvider” type=”System.Web.Management.SimpleMailEventProvider” /﹥  
  11.    ﹤add name=”SqlProvider” type=”System.Web.Management.WebRequestErrorEvent” /﹥  
  12.   ﹤/providers﹥  
  13.     
  14.  ﹤/healthMonitoring﹥ 

注意:providers節(jié)點中的"name"屬性也是我們自己取的友好的名稱。

好了,該定義的定義好了,現(xiàn)在還是不能按照我們的要求工作,那是因為我們還缺少一個"規(guī)則":
如下:

ASP.NET項目開發(fā)中健康監(jiān)視Code3

  1. ﹤rules﹥  
  2.   ﹤clear /﹥  
  3.   ﹤add name=”Unhandled Exceptions Rule”  
  4.    eventName=”Unhandled Exceptions”  
  5.    provider=”EventLogProvider”  
  6.    profile=”Default”  
  7.    minInstances=”1”  
  8.    maxLimit=”Infinite”  
  9.    minInterval=”00:00:00” /﹥  
  10.  ﹤/rules﹥ 

實際上,rules就是把我們之前定義的要監(jiān)聽的事件和相應(yīng)的provider對象上來:

  1. ﹤rules﹥  
  2.  ﹤clear /﹥  
  3.  ﹤add name=”MyRules1”  
  4.   eventName=”CustomException”  
  5.   provider=”EmailProvider”  
  6.   profile=”Default”  
  7.   minInstances=”1”  
  8.   maxLimit=”Infinite”  
  9.   minInterval=”00:00:00” /﹥  
  10. ﹤/rules﹥ 

注意上面的name屬性,其實和之前一樣,我們是給這個規(guī)則取個名字而已。eventName就是之前我們定義的事件名稱,如"CustomException",provider為之前定義的“EmailProvider” ,本條規(guī)則就是說,讓EmailProvider來處理CustomException的異常信息。其他的同理。

***一點要注意的就是:如果我們決定發(fā)送Email,那么我們還要配置節(jié)點: 

  1. ﹤system.net﹥  
  2.   ﹤mailSettings﹥  
  3.    ﹤smtp deliveryMethod=”PickupDirectoryFromIis”﹥  
  4.     ﹤network defaultCredentials=”true” host=”127.0.0.1” /﹥  
  5.    ﹤/smtp﹥  
  6.   ﹤/mailSettings﹥  
  7.  ﹤/system.net﹥ 

這樣就行了。

ASP.NET項目開發(fā)中健康監(jiān)視的基本信息就向你介紹到這里,希望這樣的介紹對你理解ASP.NET項目開發(fā)中健康監(jiān)視有所幫助。

【編輯推薦】

  1. ASP.NET Request對象使用實例淺析
  2. ASP.NET(VB)應(yīng)用之圖片增加水印文字淺析
  3. ASP.NET頁面框架概念淺析
  4. ASP.NET項目開發(fā)中應(yīng)用程序異常處理淺析
  5. ASP.NET項目開發(fā)中常見異常處理及web.config配置淺析
責(zé)任編輯:仲衡 來源: cnblogs
相關(guān)推薦

2009-07-29 17:20:18

應(yīng)用程序異常

2009-08-10 18:24:29

ASP.NET開發(fā)環(huán)境

2009-08-07 15:24:16

ASP.NET模板控件

2009-07-24 13:41:15

ASP.NET AJA

2009-08-05 18:36:12

ASP.NET Che

2009-07-31 12:43:59

ASP.NET MVC

2009-08-05 15:50:13

ASP.NET優(yōu)點

2009-08-07 15:34:15

ASP.NET數(shù)據(jù)綁定

2009-08-10 13:32:15

ASP.NET TimASP.NET組件設(shè)計

2009-07-22 14:23:39

URL RewriteASP.NET

2009-07-21 10:05:10

ASP.NET配置文件

2009-08-04 17:16:16

ASP.NET代碼優(yōu)化

2009-08-05 16:50:09

ASP.NET For

2009-07-24 18:02:46

ASP.NET編程

2009-07-27 15:34:11

MembershipASP.NET

2009-07-27 17:25:53

ASP.NET驗證控件

2009-08-03 10:07:20

ASP.NET Ses

2009-08-05 13:16:43

ASP.NET URL

2009-08-05 16:17:29

ASP.NET For

2009-08-05 16:53:14

ASP.NET組件設(shè)計
點贊
收藏

51CTO技術(shù)棧公眾號