Asp.Net 2.0的錯誤處理

Asp.Net 2.0的錯誤處理

之前寫ASP時,為了錯誤處理寫了-錯誤處理程序 v1.0,
到了.Net 1.1時,為了錯誤處理,又再寫了一個ErrorManage綁在global.asax中,
現在到了.Net 2.0,還要寫嗎??

答案是--不用了!!

ASP.Net 2.0提供了Health Monitoring讓你只要透過設定檔就可以將錯誤記錄下來,
.Net 2.0開始使用大量的provider modal,
而Health Monitoring也不例外,
它提供了六個provider

  • SimpleMailWebEventProvider. 發信通知您錯誤事件.
  • TemplatedMailWebEventProvider. 同樣是發信,不過你可以使用模版來設定信件的畫面格式.
  • SqlWebEventProvider. 將錯誤紀錄到SQL資料庫中,如果要使用這個provider,你需要先使用"aspnet_regsql.exe -E -S <ServerName> -A w "建立資料結構,然後再用Aspnet_regiis.exe將web.config中的連線字串加密.
  • EventLogWebEventProvider. 將錯誤事件記錄到事件檢視器中.
  • TraceWebEventProvider. 將事件記錄在ASP.NET trace messages.
  • WmiWebEventProvider. 將ASP.Net health monitoring事件整合到Windows Management Instrumentation (WMI) events.

相關詳細說明請點選下面這篇:
How To: Use Health Monitoring in ASP.NET 2.0

再來,立即來設定一下如何使用SimpleMailWebEventProvider
將下面的設定整合到你的web.config

<configuration>
<system.web>

<trace enabled="true" localOnly="false" />

<healthMonitoring enabled="true">
<providers>
<add name="EmailProvider"
type="System.Web.Management.SimpleMailWebEventProvider"
from="yourname@domain.com"
to="yourname@domain.com"
subjectPrefix="網站程式錯誤通知 : "
bodyHeader="網站程式錯誤列表"
buffer="true"
bufferMode="Notification" />
</providers>
<rules>
<add provider="EmailProvider" name="All App Events" eventName="All Errors" />
</rules>
</healthMonitoring>
</system.web>
<system.net>
<mailSettings>
<smtp from="you@domain.com">
<network host="smtp.domain.com" />
</smtp>
</mailSettings>
</system.net>
</configuration>

以上...就完成了使用Email通知錯誤的功能了!!
真的是很簡單...
而且,你不用擔心一有錯誤信箱就被塞滿,
因為他預設一分鐘會寄一封信,將這一分鐘內發生的錯誤列在這封信中,
另外.預設的信件大小是1,024KB,
所以也不用擔心信件檔案過大,收不下來...
而這些也都可以修改web.config來做調整!!
不過有一點要提的是...如果有錯誤記得要先解決,
不然信箱還是有可能被塞爆的...