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
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/paght000011.asp
再來,立即來設定一下如何使用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來做調整!!
不過有一點要提的是…如果有錯誤記得要先解決,
不然信箱還是有可能被塞爆的…