Настройте 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 и перенаправлять туда вручную.