2011-02-12 143 views
2

我想在我的应用程序中设置错误记录的ELMAH。这里是我的web.config:ELMAH不从本地主机发送电子邮件

数据库
<configuration> 
    <configSections> 
     <sectionGroup name="elmah"> 
      <section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, 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> 
    <elmah> 
     <security allowRemoteAccess="0" /> 
     <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="AppDb" /> 
     <errorMail from="[email protected]" to="[email protected]" subject="Elmah Error" smtpServer="localhost" /> 
    </elmah> 
    <connectionStrings> 
     <add name="AppDb" connectionString="Server=***;Database=***;Trusted_Connection=yes;" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
    <system.web> 
     <httpHandlers> 
      <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" /> 
     </httpHandlers> 
     <httpModules> 
      <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" /> 
      <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" /> 
      <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" /> 
     </httpModules> 
     <customErrors mode="Off" defaultRedirect="Error.aspx"> 
      <error statusCode="403" redirect="NoAccess.htm" /> 
      <error statusCode="404" redirect="FileNotFound.htm" /> 
     </customErrors> 
    </system.web> 
    <system.webServer> 
     <validation validateIntegratedModeConfiguration="false" /> 
     <modules runAllManagedModulesForAllRequests="true"> 
      <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" /> 
      <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" /> 
      <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" /> 
     </modules> 
     <handlers> 
      <add name="Elmah" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" /> 
     </handlers> 
    </system.webServer> 
</configuration> 

我的应用程序记录错误,但电子邮件没有得到发送出去。

我不知道是否因为我在本地机器上,如果我的web.config错误,或者如果它完全是其他东西。

回答

4

我打算假设您的本地计算机上正在运行SMTP服务器?如果你这样做了,并且你使用的是IIS 6或更低版本 - 你必须允许从IIS中的本地IP路由。这听起来很奇怪,但IIS不知道你的机器是谁,通常不会从本地主机路由。

如果您的本地主机上没有SMTP服务器设置 - 那么这就是您的需要。有一些免费的开发使用 - 像hMail http://www.hmailserver.com/

+0

另一种选择是使用一个替代的SMTP服务器,比如一个互联网服务供应商报价。或者,您可以使用Gmail发送错误电子邮件,如下所述:http://scottonwriting.net/sowblog/archive/2009/05/21/163350.aspx – 2011-02-13 04:03:00