2011-08-04 1 views
6

우리의 Web.config에 아래 라인을 추가 할 때 -로컬에서 테스트 할 때 elmah가 전자 메일을 보내지 않도록 설정하는 방법은 무엇입니까?

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

ELMAH가 발생하는되는 모든 예외에 이메일을 보냅니다. 그러나 웹 서버에 배포 된 라이브 사이트에서만이 작업을 수행하기를 원합니다. 그리고 우리 기계에서 로컬로 사이트를 테스트 할 때가 아닙니다. 현재 사이트를 로컬에서 테스트 할 때 전자 메일을 보내고 있습니다. 누구든지 우리가 그렇게 구성 할 수있는 방법을 알고 있습니까?

답변

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> 태그를해야 있음을 유의하십시오 :

웹. 구성

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