Не удается получить /elmah на сервере с Elmah MVC?
Я установил пакет elgah.mvc nuget и сохранил конфигурацию по умолчанию, которая не позволяет отправлять электронную почту и подключать ее к базе данных SQL.
На моей локальной машине, когда я использую хост Visual Studio, я могу открыть приложение и получить доступ /elmah fine, чтобы увидеть отчет об ошибках. Однако, когда я пытаюсь получить доступ /elmah на производстве, я получаю две ошибки, сначала я получаю ошибку сервера 403 access is denied
. Затем в моей электронной почте (от elmah) я получаю:
System.Web.HttpException: Server cannot set status after HTTP headers have been sent.
Кто-нибудь знает, что здесь происходит и как исправить? Спасибо.
Я попробовал следующее, что было предложено ниже:
В <system.webServer>
<handlers>
<add name="elmah" verb="GET" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah"/>
</handlers>
И в <system.web>
<httpHandlers>
<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
</httpHandlers>
Я попытался установить путь к elmah.axd
и просто ~/elmah
. Все по-прежнему дают ту же ошибку и все еще работают локально, но не в производстве.
Изменить: Он также работает, когда я удаляюсь на сервер и получаю доступ к нему через браузер (не используя localhost, а фактический адрес сайта). Итак, какого разрешения у меня нет? Похоже на уровне сервера.
Ответы
Ответ 1
Вам нужно включить Elmah для удаленного доступа, добавив следующий параметр конфигурации в раздел <elmah>
в файле web.config. Значение по умолчанию для этого значения - false, что позволяет только localhost, поэтому он работает на вашей локальной машине из Visual Studio.
<elmah>
<security allowRemoteAccess="true"/>
</elmah>
Я всегда, кажется, забыл это сам и провел несколько минут, почесывая голову;)
Ответ 2
Убедитесь, что HttpHandler определен в разделе webServer в файле web.config.
<system.webServer>
<httpHandlers>
<add name="elmah" verb="GET" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah"/>
</httpHandlers>
</system.webServer>