88

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

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

3 に答える 3

79

ErrorMail httpModule が必要です。

<httpModules> セクション内にこの行を追加します

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

リモートSMTPサーバーを使用している場合(そうであるように見えます)、サーバーにSMTPは必要ありません。

于 2008-08-29T15:04:44.617 に答える
5

私はこの構成で Elmah を自分で使用しており、ローカルで SMTP を使用してサーバーをセットアップする必要がありました。ローカルの IIS サーバーに簡単にインストールできます。これでうまくいくはずです。

上記の良い点ですが、errorMail モジュールが必要ですが、リモート SMTP サーバーを使用していない場合は、明確にするためにローカルで SMTP が必要です。

于 2008-08-29T15:04:15.523 に答える