Question

Est ce que quelqu'un l'aide en apparence, d'envoyer des exceptions via e-mail?J'ai Elmah la journalisation des mises en place via SQL Server, et peut afficher les erreurs de page via le Elmah.axd page, mais je n'arrive pas à obtenir l'e-mail de travail de composant.L'idée ici est d'obtenir l'email de notification de sorte que nous pouvons réagir plus rapidement aux exceptions.Voici mon site web.config (inutile sectionss omis), avec toutes les données sensibles remplacé par * * *.Même si je suis à la spécification d'un serveur de connexion, le service SMTP doivent être en cours d'exécution sur la machine locale?

<?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>
Était-ce utile?

La solution

Vous avez besoin de la ErrorMail httpModule.

ajoutez cette ligne à l'intérieur de la <httpModules> section

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

Si vous utilisez un serveur SMTP distant (qui, on dirait que vous êtes), vous n'avez pas besoin de SMTP sur le serveur.

Autres conseils

Oui, si vous n'utilisez pas de serveur SMTP distant, vous devez avoir Serveur SMTP configuré localement.Vous pouvez également configurer le courrier électronique pour elmah dans le web.config comme suit:

<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>

J'ai utilisé Elmah moi-même dans cette configuration, et j'ai eu à configurer le serveur SMTP en local.Il est simple à installer sur votre serveur IIS.Ceci devrait faire l'affaire.

Bon point ci-dessus, vous avez besoin de la errorMail module, MAIS si vous n'êtes pas en utilisant un serveur SMTP distant, vous devez SMTP en local, juste pour clarifier.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top