Как я могу получить 404, чтобы работать с Elmah и рулемрораттрибутом, написанным для Elmah в ASP.NET MVC?

StackOverflow https://stackoverflow.com/questions/4027433

Вопрос

Я реализовал Elmah в одном из моих проектов ASP.NET MVC. Кроме того, я сделал следующее:

  • Я реализовал ElmahhandleErrattribute, написанный Atif Aziz в этом сообщение
  • Я добавил атрибут всем моим контролям
  • У меня установка Elmah отфильтровала 404 ошибок, так как я не хочу регистрировать
  • Я добавил Error.aspx View в общей папке, которую я хочу использовать для всех моих ошибок.
  • Мои индивидуальные зерна в Web.config включены, и я не указывал какие-либо ошибки страниц в нем, как мне не нужно.

В одном из моих контроллеров у меня есть следующий код:

if (model == null)
            throw new HttpException((int)HttpStatusCode.NotFound, "Project not found");

Я просто хочу отобразить 404, если запись не может быть найдена в базе данных. По какой-то причине моя страница Error.aspx не будет отображаться для ошибки 404. Вместо этого он отображает универсальный ASP.NET «Ресурс не может быть найдена». Я пытался удалить установку фильтра 404 в Эльмах, но это не меняет ничего.

Интересная часть заключается в том, что если я изменив ошибку из неясшествия, чтобы сказать EnternalServererRor Error.aspx Page Page Surrey.

У кого-нибудь есть какие-либо указатели, почему это?

Это было полезно?

Решение

Я не использовал Elmah за пределы создания приложения образца - но, может быть, потому что 404 не ошибка приложения? Если мое понимание верно, ошибка 404 обратно на IIS, которая, в свою очередь, отображает сообщение об ошибке, которое вы видите. Кроме того, я считаю, что Web.Coin

Если я правильно понимаю, вы можете внести изменения в ваш подход и построить это вместо или установить Response.StatusCode до 404 (проверьте ответ Джеффа в связанном вопросе)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top