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

首頁 > 編程 > .NET > 正文

ASP.NET中用healthMonitor屬性用法

2024-07-10 13:04:58
字體:
供稿:網(wǎng)友
在asp.net 2.0中,可以使用healthmonitoring屬性監(jiān)測事件。healthmonitoring屬性是一個(gè)基于方法的provider,在這里可以構(gòu)造自己的provider。利用healthmonitoring屬性,我們可以諸如記錄錯(cuò)語、成功的事件等,對不同的數(shù)據(jù)源,如事件日志,sql server甚至對于自己通過繼承webeventprovider類創(chuàng)建自己的providers。在此文章中,我打算介紹配置一個(gè)監(jiān)測sqlserver錯(cuò)語的并且對某人的電子信箱地址發(fā)送郵件的web應(yīng)用程序。首先,看一下在web.config中的healthmonitoring程序片段,在此可以建立將要用到的事件。

<healthmonitoring enabled="true|false" heartbeatinterval="time interval">
 <buffermodes>... </buffermodes>
 <providers>... </providers>
 <eventmappings>... </eventmappings>
 <profiles>... </profiles>
 <rules>... </rules>
</healthmonitoring>
  如果看一下<healthmonitoring>元素,就可以判斷是否可以將設(shè)置屬性為有效或無效,也可以指定對webheaderbeatevent被喚醒的時(shí)間間隔。healthmonitoring有5個(gè)孩子。

  buffermodes,在此可以定義一個(gè)provider的緩沖區(qū)大小。

  providers,在此說明處理事件的providers。

  eventmappings, 在此可以畫出與友好事件類型相關(guān)的事件名稱。

  profiles, 在此定義一個(gè)可以用來配置事件的參數(shù)集集合。

  rules, 在此畫出providers的事件圖。

  可以閱讀更多含在vs 2550文檔中的關(guān)于這些元素的東西。

  在繼續(xù)之前,這里有一份含asp.net中的一些providers清單:

system.web.management.mailwebeventprovider
system.web.management.simplemailwebeventprovider
system.web.management.templatedmailwebeventprovider
system.web.management.tracewebeventprovider
system.web.management.eventlogwebeventprovider
system.web.management.sqlwebeventprovider
system.web.management.wmiwebeventprovider
  不需要解釋這些,名字告訴我們它們是干什么的。還要提一下sqlwebeventprovider依靠sql server而工作,它將事件存儲在aspnet_web_event表。為了安裝此數(shù)據(jù)庫,必須運(yùn)行位于framework文件夾中的aspnet_regsql.exe向?qū)А?br>
  現(xiàn)在,配置對sql server provider有登錄錯(cuò)語并且發(fā)送一個(gè)電子郵件而產(chǎn)生錯(cuò)誤的程序。

  下面是一個(gè)使用sqlwebeventprovider和simplemailwebeventprovider來存錯(cuò)語事件的例子。

<healthmonitoring enabled="true" heartbeatinterval="0">
<buffermodes>
<add name="critical notification" maxbuffersize="100" maxflushsize="20"urgentflushthreshold="1" regularflushinterval="infinite" urgentflushinterval="00:01:00" maxbufferthreads="1"/>

<add name="analysis" maxbuffersize="1000" maxflushsize="100" urgentflushthreshold="100"
regularflushinterval="00:05:00" urgentflushinterval="00:01:00" maxbufferthreads="1"/>

</buffermodes>
<providers>

<add name="criticalmaileventprovider" type="system.web.management.simplemailwebeventprovider, system.web ..." [email protected] [email protected] priority="high" bodyheader="warning!"
bodyfooter="please investigate asap." subjectprefix="action required." buffer="true" buffermode="critical notification" maxeventlength="4096" maxsize="4096" maxmessagespernotification="1"/>

<add name="sqlwebeventprovider" type="system.web.management.sqlwebeventprovider, system.web ..."
connectionstringname="localsqlserver" maxeventdetailslength="1073741823" buffer="true"
buffermode="analysis"/>

</providers>

<eventmappings>

<add name="all errors" type="system.web.management.webbaseerrorevent, system.web ..."/>
<add name="request processing errors" type="system.web.management.webrequesterrorevent, system.web .../>

</eventmappings>

<profiles>

<add name="default" mininstances="1" maxlimit="infinite" mininterval="00:10:00"/>

</profiles>

<rules>

<add name="all errors default" eventname="all errors" provider="sqlwebeventprovider" profile="default"
mininterval="00:00:30"/>

<add name="request processing errors" eventname="request processing errors" provider="criticalmaileventprovider" profile="default"/>

</rules>

</healthmonitoring>
  在此例子中,使用sql provider來記錄所有錯(cuò)語事件,并且當(dāng)web請求錯(cuò)誤事件被喚醒時(shí)使用mail provider來發(fā)送一個(gè)消息。

  這里有一些asp .net 2.0一起發(fā)布的事件:

system.web.management.webbaseevent
system.web.management.webheartbeatevent
system.web.management.webapplicationlifetimeevent
system.web.management.webrequestevent
system.web.management.webbaseerrorevent
system.web.management.weberrorevent
system.web.management.webrequesterrorevent
system.web.management.webauditevent
system.web.management.webfailureauditevent
system.web.management.websuccessauditevent
system.web.management.webmanagementevent
system.web.management.webviewstatefailureauditevent
system.web.management.webauthenticationfailureauditevent
system.web.management.webauthenticationsuccessauditevent
  可以使用這些事件來對一個(gè)provider畫圖。也可以創(chuàng)建通過webbaseevent類繼承來的自己的事件。

  為自動(dòng)喚醒一個(gè)事件,可以使用webbaseevent類的喚醒方法:

try
{
 //....
}

catch(exception e)
{
 if (healthmonitoringmanager.enabled)
 {
  webbaseevent.raise(new weberrorevent("my error message", null, 5000, e));
 }
}

or:

if (healthmonitoringmanager.enabled)
{
 weberrorevent event = new weberrorevent("my error message", null, 5000, e);
 event.raise();
}
  • 本文來源于網(wǎng)頁設(shè)計(jì)愛好者web開發(fā)社區(qū)http://www.html.org.cn收集整理,歡迎訪問。
  • 發(fā)表評論 共有條評論
    用戶名: 密碼:
    驗(yàn)證碼: 匿名發(fā)表
    主站蜘蛛池模板: 绥化市| 东乌珠穆沁旗| 江安县| 理塘县| 蓝山县| 承德市| 永川市| 桓仁| 新民市| 新化县| 邛崃市| 涿鹿县| 璧山县| 静海县| 喀什市| 那坡县| 盐城市| 常宁市| 铜鼓县| 乌苏市| 五河县| 永和县| 芜湖县| 赣榆县| 封丘县| 中山市| 武汉市| 木兰县| 桐乡市| 赞皇县| 丰城市| 福州市| 河东区| 漠河县| 深水埗区| 湄潭县| 宁化县| 克东县| 武川县| 沽源县| 奇台县|