Ошибка «Ресурс не найден» при доступе к elmah.axd в проекте ASP.NET MVC - PullRequest
11 голосов
/ 13 июля 2009

Мое приложение ASP.NET MVC находится в папке Stuff в папке IIS 6.0 webroot. Таким образом, я получаю доступ к своим страницам как 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

Ответы [ 5 ]

15 голосов
/ 24 июля 2009

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

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

5 голосов
/ 14 июля 2009

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

2 голосов
/ 21 февраля 2010

Для Эльмы нам нужно различать две вещи: Сначала http-модули выполняют всю работу по регистрации ошибок, по электронной почте и т. Д. Во-вторых, обработчики http, отображающие страницу журнала ошибок и другие страницы (rss ... и т. Д.)

У меня была та же проблема с ресурсом 404, который не был найден, потому что у меня странная установка! на моей машине разработки (windows 7, iis 7) elmah работал как очаровательно, потому что пул приложений работал в режиме интегрированного конвейера. Однако в рабочей машине приложение использовало управляемый конвейер, и я старался изо всех сил заставить Элму работать, но это было бесполезно ...

Затем мне пришла в голову идея отображения пользовательского интерфейса (страница журнала ошибок, rss, подробности ошибок, ...) с использованием обычных страниц aspx. Я скачал исходный код, внес некоторые изменения (извините, Atif, я был вынужден сделать это, потому что мне нужно было самое быстрое решение), а затем в своем приложении я создал папку, в которой я создал обычные страницы aspx, которые наследуются от страниц, определенных Elmah. Страница содержит только одну строку (например: для страницы сведений: <% @ Page Language = "C #" Inherits = "Elmah.ErrorDetailPage"%>)

Теперь я смог запустить Elmah независимо от IIS 6/7, и он работает как чудо ... и это избавило меня от большой головной боли от правильной настройки обработчиков http и устранения неполадок в его работе! Кроме того, настройка безопасности намного проще!

Я не знаю, заинтересовано ли сообщество в этом решении (если так, я готов опубликовать свои полные изменения).

Надеюсь, что это даст вам представление о том, как решить проблему альтернативным способом (и если вам нужна модифицированная DLL с подробными инструкциями по ее использованию, просто скажите мне!)

1 голос
/ 17 августа 2010

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

0 голосов
/ 14 июля 2009

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

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

...