ELMAH.axd доступен для просмотра, но никогда не будет регистрировать ни одну из моих ошибок?
-
19-09-2019 - |
Вопрос
У меня все настроено, и я могу перейти к / elmah.axd, но я вызывал все эти ошибки, и он не будет регистрировать ни одну из них, он просто скажет "ошибок не зарегистрировано"...что, черт возьми, я сделал не так?
Вот материал, который я добавил в свой web.config:
<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" />
</sectionGroup>
</configSections>
<httpHandlers>
<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
</httpHandlers>
<httpModules>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
</httpModules>
<elmah>
<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data" />
<security allowRemoteAccess="yes" />
</elmah>
ТАКЖЕ:Это было уже в начале моего RegisterRoutes()
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
Я читал, что это больше не имеет значения с ASP.NET Хотя, предположительно, MVC 1.0 (согласно веб-сайту ELMAH ...)
Решение
Конфигурация, кажется, в порядке;мое лучшее предположение заключается в том, что у пользователя вашего веб-приложения IIS нет разрешения на запись в App_Data.Если вы заблокировали разрешения, пользователь приложения будет иметь там разрешения на чтение, но не на запись.
Вы можете открыть разрешения или войти в другой каталог за пределами веб-пути (что немного безопаснее, IMO) и убедиться, что там установлены разрешения на чтение / запись для пользователя.
Другие советы
Рецепт решения
Я установил из nuget elmah
и elmah on XML log
, не получил ожидаемой функциональности, хотя я мог получить доступ http://localhost/elmah.axd
, но никакого захвата ошибок.
Я дал разрешение на запись учетной записи IIS_IUSERS в папке APP_DATA, и она начала работать с ошибками HTTP 404 и ошибками, которые находятся за пределами инфраструктуры MVC.Но он не регистрировал исключения внутри mvc.Решением была установка элмах.mvc пакет из nuget, и он начал фиксировать все исключения.
Если ваша конфигурация в порядке, то просто установите elmah.mvc
пакет из nuget, и он должен начать хранить журналы также внутри mvc, а не только HTTP 404.