Ошибка "Ресурс не найден" при доступе к elmah.axd в проекте ASP.NET MVC

Мое приложение 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

Ответ 1

Работая с IIS7, мне показалось, что мне нужны обе части web.config, заполненные (system.web И system.webServer) - см. Elmah не работает с сайтом asp.net.

Возможно, это связано.

Ответ 2

Вы добавили маршруты ignore *.axd в global.asax?

Ответ 3

Для Эльмы нам нужно различать две вещи: Сначала 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 с полными инструкциями о том, как ее использовать, просто скажите мне!)

Ответ 4

В настройках пула приложений в IIS установите Managed Pipelin Mode - Classic, если вы не хотите изменять код или файл web.config. Ваш axd.s будет работать по-прежнему.

Ответ 5

Можете ли вы опубликовать остальную часть вашего web.config?

Или, если вам достаточно удобно, можете ли вы просто убедиться, что разделы httpHandlers и httpModules (НЕ обработчики и модули) правильно заполнены в файле web.config?