【问题标题】:elmah only sending emails for "page not found" errorselmah 仅针对“找不到页面”错误发送电子邮件
【发布时间】:2014-10-05 13:11:39
【问题描述】:

我在 web.config 中设置了 Elmah,以便向我发送有关错误的电子邮件。但是,由于某种原因,我只有在域名后面输入虚假页面时才会收到电子邮件。任何其他错误,我在网站上看到了我的自定义错误页面,所以我收到了一个错误,但没有电子邮件。谁能看到我做错了什么? 以下是相关的 web.config 代码:

    <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>
    <httpModules>
      <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
      <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
      <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
    </httpModules>
    <system.webServer>
    <httpErrors errorMode="Custom" existingResponse="Replace">
      <remove statusCode="500" subStatusCode="-1" />
      <remove statusCode="404" subStatusCode="-1" />
      <error statusCode="500" path="/Errors/Error" responseMode="ExecuteURL" />
      <error statusCode="404" path="/Errors/Error" responseMode="ExecuteURL" />
    </httpErrors>
    <modules runAllManagedModulesForAllRequests="true">
      <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
      <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
      <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
    </modules>
    <mailSettings>
      <smtp deliveryMethod="Network">
        <network host="relay-hosting.secureserver.net" port="25" />
      </smtp>
    </mailSettings>
  </system.net>
      <elmah>
    <errorMail from="from email"
               to="to email"
               subject="Application Error"
               async="true"
               smtpPort="0"
      />
    <security allowRemoteAccess="false" />
    <errorFilter>
      <text>
      </text>
    </errorFilter>
  </elmah>
  <location path="elmah.axd" inheritInChildApplications="false">
    <system.web>
      <httpHandlers>
        <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
      </httpHandlers>
      <authorization>
        <allow roles="admin" />
        <deny users="*" />  
      </authorization>
    </system.web>
    <system.webServer>
      <handlers>
        <add name="ELMAH" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" />
      </handlers>
    </system.webServer>
  </location>
</configuration>

【问题讨论】:

    标签: asp.net-mvc elmah


    【解决方案1】:

    从 web.config elmah 部分中删除它:

    <errorFilter>
        <text>
        </text>
    </errorFilter>
    

    我假设空节点由于某种原因默认过滤 404,但我没有测试过。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-04
      • 2012-01-21
      • 2010-09-07
      • 2013-02-10
      • 2014-07-05
      • 2017-01-12
      • 1970-01-01
      • 2017-05-18
      相关资源
      最近更新 更多