Мне установили пользовательские ошибки в веб-файле конфигурации следующим образом:
<customErrors mode="RemoteOnly" defaultRedirect="GenericError.aspx" />
Великолепный... Мне нравится этот режим =, "RemoteOnly" упрощает разработку...
Для необработанных исключений я имею в global.asax:
Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
Response.Redirect("GenericError.aspx")
End Sub
Однако необработанные исключения идут в универсальную ошибочную страницу вместо информативного желтого экрана смерти, предпочтенной разработчиками. Я могу прокомментировать перенаправление в global.asax, но затем я должен не забыть изменять его для продуктивной среды. Существует ли способ, которым я могу зарегистрироваться в Application_Error, являюсь ли я удаленным или не определить, перенаправить ли?
Вам не нужен Response.Redirect
в Global.asax. Он дублирует поведение тега
. RemoteOnly предоставит конечным пользователям настраиваемое сообщение об ошибке, а локальным пользователям - стандартную страницу ошибок asp.net. Если ваши разработчики используют локальный веб-сервер для разработки, у вас есть оба в одном.
Другой подход - установить для
значение Off
на серверах разработки и установить для него значение On
в производственной среде. Обычно в файле web.config есть много элементов, которые нужно изменить, чтобы это не было проблемой.
Вам даже не понадобится строка в Application_Error, если в вашем web.config установлен defaultRedirect.