DefaultRedirect не работает с mvc 4 web.config

Привет, товарищи программисты! У меня проблема, я столкнулся с причудливой проблемой перенаправления на пользовательскую страницу ошибки. Вот что у меня есть в моем web.config

<system.web>
<customErrors mode="On" defaultRedirect="/Message/DefaultError"    redirectMode="ResponseRedirect"  >
  <error statusCode="404" redirect="/NotFound" />
  <error statusCode="500" redirect="/ServerError"/>
</customErrors>
</system.web>

при ошибках 404 и 500, которые были объявлены выше, работали нормально, но моя основная проблема заключается в работе с не перечисленными ошибками, такими как 400 и т. д. Я хочу поймать ВСЕ ДРУГИЕ ОШИБКИ в действии перенаправления по умолчанию. или это возможно??? Помогите, пожалуйста????


person Edu Cielo    schedule 01.09.2014    source источник


Ответы (1)


я хочу поймать ВСЕ ДРУГИЕ ОШИБКИ в действии перенаправления по умолчанию

Поскольку «Все остальные ошибки» (400, 401 и т. д.), скорее всего, будут считаться ошибкой сервера, а не ошибкой приложения, вам необходимо установить страницу по умолчанию на раздел <system.webServer>:

<system.webServer>
    <httpErrors defaultPath="/Message/DefaultError" defaultResponseMode="Redirect">
        <clear />
    </httpErrors>
</system.webServer>

См. документацию.

person haim770    schedule 01.09.2014
comment
спасибо за ответ, но как насчет обработки ошибки 400 или неверного запроса |?? - person Edu Cielo; 01.09.2014
comment
Ответ исправлен, я только что заметил, что пропустил некоторые важные части. В любом случае, он также должен обрабатывать 400 / Bad Request. - person haim770; 01.09.2014
comment
Да, так как это влияет на конфигурацию IIS, и ему все равно, находится ли ваше развернутое приложение в режиме отладки. - person haim770; 01.09.2014
comment
я пробую это сейчас. /Message/DefaultError — это контроллер/действие для уточнения - person Edu Cielo; 01.09.2014
comment
теперь мой web.config выглядит так: ‹httpErrors errorMode=Custom defaultPath=/Message/DefaultError defaultResponseMode=Redirect› ‹remove statusCode=404 subStatusCode=-1 /› ‹error statusCode=404 path=/NotFound responseMode=Redirect /› ‹ удалить statusCode=500 subStatusCode=-1 /› ‹код состояния ошибки=500 path=/ServerError responseMode=Redirect /› ‹/httpErrors› - person Edu Cielo; 01.09.2014
comment
видеть, что я добавил другой / в URL - person Edu Cielo; 01.09.2014
comment
И какова реальная реакция? - person haim770; 01.09.2014
comment
сообщение об ошибке, в котором говорится, что это неверный запрос, но не моя пользовательская страница - person Edu Cielo; 01.09.2014
comment
все равно не повезло, даже если я поставлю ‹код состояния ошибки=400› - person Edu Cielo; 01.09.2014