Настройте 2 разные пользовательские страницы ошибок для 2 разных частей 1 сайта

В настоящее время у меня есть 1 пользовательская страница ошибок для всего моего сайта ASP .NET:

<system.web>
    <customErrors mode="RemoteOnly" defaultRedirect="~/ErrorPage.aspx" />
</system.web>

Тем не менее, я хотел бы настроить 2 разные страницы ошибок, чтобы ошибка на разных сторонах вызывала перенаправление на разные страницы ошибок. Например:

  • Когда пользователи сталкиваются с ошибкой на странице в http://example.com/Part1/ они будут перенаправлены на ErrorPage1.aspx,
  • Когда пользователи сталкиваются с ошибкой на странице в http://example.com/Part2/ они будут перенаправлены на ErrorPage2.aspx

Это вообще возможно?

2 ответа

Решение

ASP.NET позволяет определенные настройки в web.config быть переопределенным в подкаталогах; это включает обработку ошибок. Просто создайте:

<system.web>
    <customErrors mode="RemoteOnly" defaultRedirect="~/ErrorPage1.aspx" />
</system.web>

как Part1\web.config, а также

<system.web>
    <customErrors mode="RemoteOnly" defaultRedirect="~/ErrorPage2.aspx" />
</system.web>

как Part2\web.config,

Нет, показанная страница может быть основана только на HTTP-коде результата, таком как 500, 404 и т. Д., Который можно прочитать на этой странице. Цитируется оттуда:

"Лучшим подходом является использование настраиваемой страницы ошибок, которая влечет за собой создание и проектирование настраиваемой страницы ошибок и указание ее URL-адреса в атрибуте секции defaultRedirect. Вы даже можете иметь несколько настраиваемых страниц ошибок для разных состояний ошибок HTTP".

Вы можете использовать свою собственную обработку ошибок в блоках try/catch и перенаправлять туда вручную.

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