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

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

Работая с IIS7, я обнаружил, что мне нужны оба раздела web.config населенный (system.web А ТАКЖЕ system.webServer) - видите, что Элма не работает с сайтом asp.net.

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

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

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

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

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

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

Другие вопросы по тегам