2011-08-04 14 views
6

Cuando añada la línea siguiente para web.config -¿Cómo desactivar elmah enviando correos electrónicos cuando se prueba localmente?

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

Elmah envía mensajes de correo electrónico en las excepciones que se están produciendo. Pero queremos que esto solo suceda con el sitio en vivo que se implementa en el servidor web. Y no cuando estamos probando el sitio localmente en nuestras máquinas. Actualmente está haciendo eso y enviando correos electrónicos cuando estamos probando el sitio localmente. ¿Alguien sabe cómo podemos configurarlo de esa manera?

Respuesta

8

Agregue el registro de correo electrónico a su Web.Release.config. Mi base Web.config no contiene nada de Elmah en absoluto, todo se agrega al compilar con la versión. Si compila para el lanzamiento y se ejecuta localmente, enviará un correo electrónico y lo registrará, pero una compilación de depuración regular no lo hará.

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> 

Por último, debe tener en cuenta que su Web.config base debe tener la etiqueta <configSections> al inicio, incluso si está vacío:

Web. config

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