2008-08-29 3 views
83

Elmahを使用して電子メールで例外を送信する人はいますか?私はElmahのログをSQL Server経由でセットアップし、Elmah.axdページからエラーページを見ることができますが、電子メールコンポーネントを動作させることができません。ここでのアイデアは、電子メール通知を取得して、より迅速に例外に対応できるようにすることです。ここでは、すべての機密データを* * *に置き換えたweb.config(不要なセクションは省略)です。私は接続するサーバーを指定していますが、ローカルマシン上でSMTPサービスを実行する必要がありますか?Elmahからメールを送信しますか?

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

答えて

78

ErrorMail httpModuleが必要です。あなたは、サーバー上のSMTPを必要としない(あなたがいるように見えた)リモートSMTPサーバーを使用している場合

は<のHttpModules >セクション

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

内のこの行を追加します。

+0

統合エラーを送信するように毎日のジョブを設定する方法はありますか? –

5

私はこの設定でElmahを自分で使用しましたが、私はSMTPをローカルに設定する必要がありました。ローカルのIISサーバーに直接インストールできます。これはトリックを行う必要があります。

上記のポイントは、errorMailモジュールが必要ですが、SMTPをローカルに必要とするリモートSMTPサーバを使用していない場合は、明らかにするだけです。

62

リモートSMTPサーバーを使用していない場合は、SMTPサーバーをローカルに構成する必要があります。

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

これはうまくいった。私は、ELMAHが標準のmailSettingsセクションにフックできることを認識していませんでした。 smtpPort = "0"属性は奇妙なものです。 –

+1

smtpPort = "0"は、system.netの下で指定されたポートを使用するため、必要ではないようです。私はuseSsl = "false"を設定しなければなりませんでした。そうしないと、サーバーがクラッシュしました(たぶんSSLを設定しなかったため) –

+0

要素の順序が重要であることがわかりました。 elmah FAILED後にsystem.netを指定してください。メールサーバーがないようなELMAHシステムが定義されました。 system.netを最初に作ったのはそれを実現させた –

関連する問題