ELMAH не отправляет электронную почту с localhost - PullRequest
2 голосов
/ 12 февраля 2011

Я пытаюсь настроить ELMAH для регистрации ошибок в моем приложении. Вот мой web.config:

<configuration>
    <configSections>
        <sectionGroup name="elmah">
            <section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, 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>
    <elmah>
        <security allowRemoteAccess="0" />
        <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="AppDb" />
        <errorMail from="errors@site.com" to="mail@site.com" subject="Elmah Error" smtpServer="localhost" />
    </elmah>
    <connectionStrings>
        <add name="AppDb" connectionString="Server=***;Database=***;Trusted_Connection=yes;" providerName="System.Data.SqlClient" />
    </connectionStrings>
    <system.web>
        <httpHandlers>
            <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
        </httpHandlers>
        <httpModules>
            <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
            <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
            <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
        </httpModules>
        <customErrors mode="Off" defaultRedirect="Error.aspx">
            <error statusCode="403" redirect="NoAccess.htm" />
            <error statusCode="404" redirect="FileNotFound.htm" />
        </customErrors>
    </system.web>
    <system.webServer>
        <validation validateIntegratedModeConfiguration="false" />
        <modules runAllManagedModulesForAllRequests="true">
            <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
            <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
            <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
        </modules>
        <handlers>
            <add name="Elmah" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
        </handlers>
    </system.webServer>
</configuration>

Мое приложение регистрирует ошибки в базе данных, но электронные письма не отправляются.

Я не знаю, связано ли это с тем, что я нахожусь на моей локальной машине, неверен ли мой web.config или что-то совсем другое.

Ответы [ 2 ]

4 голосов
/ 12 февраля 2011

Я собираюсь предположить, что на вашем локальном компьютере запущен SMTP-сервер? Если вы это делаете и используете IIS 6 или ниже - вы должны разрешить маршрутизацию с локального IP-адреса в IIS. Звучит странно, но IIS не знает, кто ваша машина, и обычно не маршрутизирует с localhost.

Если у вас не настроен SMTP-сервер на вашем локальном хосте - тогда это то, что вам нужно. Существует ряд бесплатных программ для использования в разработке - например, hMail http://www.hmailserver.com/

0 голосов
/ 13 февраля 2011

Я думаю, что сохранение в виде файла является безопасным и более удобным для отправки почты, если оно разрабатывается.

Element (Network Settings)"> Элемент (Настройки сети)

...