Pregunta

Es cualquiera el uso de Elmah para enviar excepciones a través de correo electrónico?Tengo Elmah registro de configurar a través de SQL Server, y puede ver los errores de la página a través de la Elmah.axd página, pero soy incapaz de conseguir el correo electrónico de los componentes.La idea aquí es hacer que la notificación por correo electrónico para que podamos reaccionar más rápidamente a las excepciones.Aquí está mi web.config (innecesario sectionss omitido), con todos los datos sensibles reemplazado por * * *.A pesar de que yo soy la especificación de un servidor al que conectarse, el servicio SMTP necesita estar en ejecución en el equipo local?

<?xml version="1.0"?>
<configuration>
    <configSections>
        <sectionGroup name="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>
    <appSettings/>
    <connectionStrings>
        <add name="elmah-sql" connectionString="Data Source=***;Initial Catalog=***;Persist Security Info=True;User ID=***;Password=***" />
    </connectionStrings>

    <elmah>
        <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="elmah-sql"   >
        </errorLog>
        <errorMail from="test@test.com"
           to="test@test.com"
           subject="Application Exception"
           async="false"
           smtpPort="25"
           smtpServer="***"
           userName="***"
           password="***">
        </errorMail>
    </elmah>

    <system.web>        
        <customErrors mode="RemoteOnly" defaultRedirect="CustomError.aspx">
            <error statusCode="403" redirect="NotAuthorized.aspx" />
            <!--<error statusCode="404" redirect="FileNotFound.htm" />-->
        </customErrors>
        <httpHandlers>
            <remove verb="*" path="*.asmx"/>
            <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
            <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
        </httpHandlers>
        <httpModules>
            <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>
        </httpModules>
    </system.web>

</configuration>
¿Fue útil?

Solución

Usted necesita la ErrorMail httpModule.

añadir esta línea en el interior de la <httpModules> sección

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

Si usted está usando un servidor SMTP remoto (que parece que son) usted no necesita SMTP en el servidor.

Otros consejos

Sí, si usted no está utilizando el servidor SMTP remoto debe tener el Servidor SMTP configurado localmente.También puede configurar el correo electrónico para elmah en la web.config de la siguiente manera:

<configSections>
   <sectionGroup name="elmah">
     <section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler,  Elmah"> 
    </sectionGroup>
</configSections> 

<elmah> 
     <errorMail from="from Mail Address" to="to mail address" 
                async="true"  smtpPort="0" useSsl="true" /> 
</elmah>

<system.net> 
    <mailSettings> 
      <smtp deliveryMethod ="Network"> 
        <network host="smtp.gmail.com" port="587" userName="yourgmailEmailAddress"   password="yourGmailEmailPassword" /> 
      </smtp> 
    </mailSettings> 
</system.net>

He utilizado Elmah a mí mismo en esta configuración y me había configurar el servidor SMTP local.Es un sencillo de instalar en el local del servidor IIS.Esto debe hacer el truco.

Buen punto anterior, tiene la errorMail módulo, PERO si usted no está usando un servidor SMTP remoto necesita SMTP local, solo para aclarar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top