【问题标题】: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 应该在开头有 <configSections> 标签,即使它是空的:
Web.config
<configuration>
<configSections /><!-- Placeholder for the release to insert into -->
....