Ответ 1
Работая с IIS7, мне показалось, что мне нужны обе части web.config
, заполненные (system.web
И system.webServer
) - см. Elmah не работает с сайтом asp.net.
Возможно, это связано.
Мое приложение ASP.NET MVC находится в папке Stuff в папке webroot IIS 6.0. Поэтому я обращаюсь к своим страницам как http://localhost/Stuff/Posts. У меня работал EMLAH, когда я использовал встроенный веб-сервер Visual Studio. Теперь, когда я обращаюсь к http://localhost/Stuff/elmah.axd, я получаю ресурс, который не найден. Может кто-нибудь указать мою ошибку здесь! Вот запись в файле конфигурации,
<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah"/> //Handler
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah"/>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah"/> //Module
Работая с IIS7, мне показалось, что мне нужны обе части web.config
, заполненные (system.web
И system.webServer
) - см. Elmah не работает с сайтом asp.net.
Возможно, это связано.
Вы добавили маршруты ignore *.axd в global.asax?
Для Эльмы нам нужно различать две вещи: Сначала http-модули выполняют всю работу регистрации ошибок, отправки по электронной почте... и т.д. Во-вторых, обработчики http, отображающие страницу журнала ошибок и другие страницы (rss... и т.д.)
У меня была та же проблема с 404 ресурсом, который не найден, потому что у меня странная настройка! на моей машине разработки (windows 7, iis 7) elmah работал как шарм, потому что пул приложений работал в режиме интегрированного конвейера. Однако в производственной машине приложение использовало управляемый трубопровод, и я изо всех сил старался работать с elmah, но это было бесполезно...
Затем я получил представление о отображении пользовательского интерфейса (страницы журнала ошибок, rss, детали ошибок,...) с использованием обычных страниц aspx. Я загрузил исходный код, внес некоторые изменения (извините Atif, я был вынужден сделать это, потому что мне нужно было самое быстрое решение), а затем в моем приложении я создал папку, в которой я создал регулярные страницы aspx, которые наследуются от определенных страниц Elmah. Страница содержит только одну строку (например: для страницы с подробной информацией: <% @Page Language = "С#" Inherits = "Elmah.ErrorDetailPage" % > )
Теперь я смог запустить Elmah независимо от IIS 6/7, и он работает как шарм.. и он спас меня от большой головной боли, правильно настроившей обработчики http и устраняя ее работу! Кроме того, настройка безопасности намного проще!
Я не знаю, заинтересовано ли сообщество в этом решении (если это так, я готов опубликовать свои полные изменения).
Надеюсь, что это даст вам представление о том, как решить проблему альтернативным способом (и если вам нужна модифицированная dll с полными инструкциями о том, как ее использовать, просто скажите мне!)
В настройках пула приложений в IIS установите Managed Pipelin Mode
- Classic
, если вы не хотите изменять код или файл web.config
. Ваш axd.s
будет работать по-прежнему.
Можете ли вы опубликовать остальную часть вашего web.config?
Или, если вам достаточно удобно, можете ли вы просто убедиться, что разделы httpHandlers и httpModules (НЕ обработчики и модули) правильно заполнены в файле web.config?