ELMAH работает на локальной машине, но не на производстве - PullRequest
3 голосов
/ 15 августа 2011

Простая настройка, я использую ELMAH для регистрации исключений и отправки мне электронных писем.Все отлично работает на моем локальном компьютере, но когда я помещаю изменения на свой рабочий сервер, ошибки не регистрируются, и я не получаю электронные письма.

Вот мой web.config на моем локальном компьютере:

<?xml version="1.0"?>
<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="MyDB" />
        <errorMail from="errors@mysite.com" to="myemail@mysite.com"
            subject="Error" smtpServer="localhost" smtpPort="25" 
            userName="user@mysite.com" password="mypassword" />
    </elmah>

    <connectionStrings>
        <add name="MyDB" connectionString="Data Source=.\SQLEXPRESS
            AttachDbFilename=|DataDirectory|\MyDB.mdf;
            Integrated Security=True;User Instance=True;
            MultipleActiveResultSets=True"
            providerName="System.Data.SqlClient" />
        <!--<add name="MyDB" connectionString="Server=mysite.com;
            Database=MyDB;User ID=user;Password=mypassword;
            Trusted_Connection=True;Integrated Security=False;
            MultipleActiveResultSets=True"
            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>
    </system.web>

    <location path="Admin/Errors">
        <system.web>
            <httpHandlers>
                <add verb="POST,GET,HEAD" path="elmah.axd"
                    type="Elmah.ErrorLogPageFactory, Elmah" />
            </httpHandlers>
        </system.web>
    </location>
</configuration>

Единственным различием между web.config на моем компьютере и на рабочем месте является используемая строка подключения.На моей машине я подключаюсь к файлу .mdf.На производстве я подключаюсь к внешней базе данных.

Кто-нибудь может увидеть, что я здесь не так делаю?

Я использую C # и ASP.NET MVC 3

Ответы [ 2 ]

9 голосов
/ 15 августа 2011

Вам необходимо установить allowRemoteAccess = "yes" для удаленного доступа.

  <elmah>
    <security allowRemoteAccess="yes"/>
  </elmah>

И проверьте страницу администратора elmah, чтобы увидеть, поможет ли это вам.

Пример доступа: http://prodserver/elmah.axd

3 голосов
/ 16 августа 2011

Используете ли вы IIS7 в производстве? Прочитайте мой ответ на подобный вопрос здесь Elmah, преобразовать в .Net4 vs2010, запустить на сервере 2008, не работает

...