转:http://write.blog.csdn.net/postedit
Elmah是一个开源的组件,用来记录web应用程序的error。如果你还不了解它,请先去官方网站。 它通用对Http Modules和 Http Handlers编程实现的。
这里我们配制它自动发mail到你的Gmail邮箱。
首先,我们在VS2010中安装NuGet,如下图:
然后在项目Reference上点击右键,有如下Menu:
查找Elmah项目,然后Install
你还可以使用PowerShell按制台来Install,这样打开:
然后在命令行输入:
Install-Package elmah
将Output:
PM> Install-Package elmah
Successfully installed 'elmah 1.1'
Successfully added 'elmah 1.1' to MainWeb
以上两种方式都可以,你可以任选其一。这时你可能注意要你的web.config文件已被自动修改,项目引用了elmah的程序集。
<sectionGroup name="elmah">
<sectionname="security"requirePermission="false"type="Elmah.SecuritySectionHandler, Elmah"/>
<sectionname="errorLog"requirePermission="false"type="Elmah.ErrorLogSectionHandler, Elmah"/>
<sectionname="errorMail"requirePermission="false"type="Elmah.ErrorMailSectionHandler, Elmah"/>
<sectionname="errorFilter"requirePermission="false"type="Elmah.ErrorFilterSectionHandler, Elmah"/>
</sectionGroup>
<httpModules>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>
</httpModules>
<httpHandlers>
<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah"/>
</httpHandlers>
这时让我们来配制使用Gmail,增加配制节如下:
<elmah>
<securityallowRemoteAccess="0"/>
<errorMail from="yourname@gmail.com" to="yourname@gmail.com" subject="error log test" priority="High" async="false"
smtpPort="587" smtpServer="smtp.gmail.com" useSsl="true" noYsod="false" userName="yourname" password="yourpwd"/>
</elmah>
Gmail使用587的端口,使用ssl。然后你还需要修改这个配制在web.config中。
<httpModules><addname="ErrorMail"type="Elmah.ErrorMailModule, Elmah"/>
<addname="ErrorLog"type="Elmah.ErrorLogModule, Elmah"/>
</httpModules>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<addname="ErrorMail"type="Elmah.ErrorMailModule, Elmah"/>
<addname="ErrorLog"type="Elmah.ErrorLogModule, Elmah"/>
</modules>
<validationvalidateIntegratedModeConfiguration="false"/>
<handlers>
<addname="Elmah"verb="POST,GET,HEAD"path="elmah.axd"type="Elmah.ErrorLogPageFactory, Elmah"/>
</handlers>
</system.webServer>
好了,这时让我们来做个测试,在任意Page中,然后运动这个Page
1: protectedvoid Page_Load(object sender, EventArgs e)
2: { 3: thrownew ArgumentException("Test"); 4: }
这时你去查看你的Gmail邮箱,就有这样的邮件了: