Wyślij e-mail z Elmah?

Czy ktoś używa Elmah do wysyłania WYJĄTKÓW przez e-mail? Mam elmah logging skonfigurowany przez SQL Server i mogę wyświetlić stronę błędów za pośrednictwem Elmah.strona axd, ale nie jestem w stanie uruchomić komponentu e-mail. Chodzi o to, aby otrzymać powiadomienie e-mail, abyśmy mogli szybciej reagować na wyjątki. Oto moja strona.config (niepotrzebne sekcje pominięte), z wszystkimi wrażliwymi danymi zastąpionymi przez***. Mimo, że określam serwer do połączenia, czy usługa SMTP musi być uruchomiona na lokalnej maszynie?

<?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="[email protected]"
           to="[email protected]"
           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>
Author: Mark Struzinski, 2008-08-29

3 answers

Potrzebujesz errormail httpModule.

Dodaj tę linię wewnątrz sekcji

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

Jeśli używasz zdalnego serwera SMTP (na który wygląda), nie potrzebujesz SMTP na serwerze.

 78
Author: TonyB,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-11 14:11:15

Tak, jeśli nie używasz zdalnego serwera SMTP, musisz mieć serwer SMTP skonfigurowany lokalnie. Możesz również skonfigurować e-mail dla elmah w Internecie.config w następujący sposób:

<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>
 62
Author: Anand Patel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-11 23:51:03

Sam korzystałem z Elmah w tej konfiguracji i musiałem skonfigurować serwer z SMTP lokalnie. Jest to prosta instalacja na lokalnym serwerze IIS. To powinno załatwić sprawę.

Dobry punkt powyżej, potrzebujesz modułu errorMail, ale jeśli nie używasz zdalnego serwera SMTP, potrzebujesz SMTP lokalnie, tylko dla wyjaśnienia.

 5
Author: Rob Bazinet,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-29 15:55:39