2011-08-04 39 views
6

當我們下面的行添加到web.config中 -如何在本地測試時禁用elmah發送電子郵件?

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

ELMAH發出郵件上所存在的任何異常。但是我們希望這隻會發生在部署在Web服務器上的實時站點上。而不是當我們在我們的機器上本地測試站點時。目前正是這樣做,並且在我們在本地測試站點時發送電子郵件。有誰知道我們可以如何配置它?

回答

8

將電子郵件記錄添加到您的Web.Release.config。我的基地Web.config根本不包含任何Elmah的東西 - 它在編譯時與發佈一起被添加進來。如果您編譯發佈並在本地運行,它將發送電子郵件並記錄,但常規調試版本不會。

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>標籤在一開始,即使它是空的:

網絡。 config

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