是否有人使用Elmah通过电子邮件发送例外? 我已经通过SQL Server设置了Elmah日志记录,并且可以通过Elmah.axd页面查看错误页面,但是我无法使电子邮件组件正常工作。 这里的想法是获取电子邮件通知,以便我们可以更快地对异常做出反应。 这是我的web.config(省略不必要的部分),所有敏感数据都替换为* * *。 即使我指定要连接的服务器,SMTP服务是否仍需要在本地计算机上运行?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| <?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="elmah">
<section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah"/>
<section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah"/>
<section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah"/>
</sectionGroup>
</configSections>
<connectionStrings>
</connectionStrings>
<elmah>
<errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="elmah-sql" >
</errorLog>
<errorMail from="test@test.com"
to="test@test.com"
subject="Application Exception"
async="false"
smtpPort="25"
smtpServer="***"
userName="***"
password="***">
</errorMail>
</elmah>
<system.web>
<customErrors mode="RemoteOnly" defaultRedirect="CustomError.aspx">
<error statusCode="403" redirect="NotAuthorized.aspx" />
<!--<error statusCode="404" redirect="FileNotFound.htm" />-->
</customErrors>
<httpHandlers>
<remove verb="*" path="*.asmx"/>
</httpHandlers>
<httpModules>
</httpModules>
</system.web>
</configuration> |
您需要ErrorMail httpModule。
在部分中添加此行
如果您使用的是远程SMTP服务器(看起来像您一样),则服务器上不需要SMTP。
是的,如果您不使用远程SMTP服务器,则必须在本地配置SMTP服务器。 您还可以在web.config中为elmah配置电子邮件,如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <configSections>
<sectionGroup name="elmah">
<section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah">
</sectionGroup>
</configSections>
<elmah>
<errorMail from="from Mail Address" to="to mail address"
async="true" smtpPort="0" useSsl="true" />
</elmah>
<system.net>
<mailSettings>
<smtp deliveryMethod ="Network">
<network host="smtp.gmail.com" port="587" userName="yourgmailEmailAddress" password="yourGmailEmailPassword" />
</smtp>
</mailSettings>
</system.net> |
我本人在此配置中使用过Elmah,因此必须在本地使用SMTP设置服务器。 它是在本地IIS服务器上的直接安装。 这应该可以解决问题。
上面的要点是,如果不使用远程SMTP服务器,则需要使用errorMail模块,但为了澄清起见,您需要在本地使用SMTP。