【问题标题】:How to disable elmah sending out emails when testing locally?如何在本地测试时禁用 elmah 发送电子邮件?
【发布时间】:2011-08-04 17:03:36
【问题描述】:

当我们将以下行添加到 web.config -

<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />

Elmah 会针对发生的任何异常情况发送电子邮件。但我们希望这只发生在部署在 Web 服务器上的实时站点上。而不是当我们在我们的机器上本地测试站点时。目前,当我们在本地测试站点时,它正在这样做并发送电子邮件。有谁知道我们如何配置它?

【问题讨论】:

    标签: asp.net-mvc-3 email localhost elmah


    【解决方案1】:

    将电子邮件日志添加到您的 Web.Release.config。我的基本 Web.config 根本不包含任何 Elmah 的东西——它们都是在与 release 一起编译时添加的。如果您编译发布并在本地运行,它会发送电子邮件并记录,但常规调试版本不会。

    Web.Release.config

      <configSections>
          <sectionGroup name="elmah" xdt:Transform="Insert">
              <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>
    
      <connectionStrings>
        <clear/>
          <add xdt:Transform="Insert" name="ErrorLogs" connectionString="...." />
      </connectionStrings>
    
      <elmah xdt:Transform="Insert">
          <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="ErrorLogs" />
          <security allowRemoteAccess="0" />
          <errorMail ...Email options ... />
      </elmah>
    
        <system.web>
            <compilation xdt:Transform="RemoveAttributes(debug)" />
    
            <httpModules xdt:Transform="Insert">
                <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
                <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
            </httpModules>
        </system.web>
    
        <system.webServer>
            <modules xdt:Transform="Insert" runAllManagedModulesForAllRequests="true">
                <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
                <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
            </modules>
        </system.webServer>
    
    </configuration>
    

    最后,应该注意你的基本 Web.config 应该在开头有 &lt;configSections&gt; 标签,即使它是空的:

    Web.config

    <configuration>
      <configSections /><!-- Placeholder for the release to insert into -->
      ....
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-12
      • 2010-09-07
      • 2013-04-04
      • 1970-01-01
      • 2013-02-10
      • 2011-06-29
      • 2010-09-15
      • 1970-01-01
      相关资源
      最近更新 更多