ASP.NET customErrors с mode = remoteOnly и global.asax, обрабатывающими исключения - PullRequest
6 голосов
/ 19 июля 2010

У меня есть пользовательские ошибки, установленные в файле веб-конфигурации следующим образом:

<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, удален я или нет, чтобы определить, нужно ли перенаправлять?

Ответы [ 2 ]

4 голосов
/ 19 июля 2010

Вам не нужен Response.Redirect в Global.asax. Он дублирует поведение тега <customErrors>. RemoteOnly предоставит конечным пользователям пользовательское сообщение об ошибке, а локальные пользователи - стандартную страницу ошибок asp.net. Если ваши разработчики используют локальный веб-сервер для разработки, у вас есть оба в одном.

Другой подход - установить <customErrors> на Off на серверах разработки и установить On в производственной среде. Обычно в файле web.config есть много элементов, которые нужно изменить, так что это больше не проблема.

0 голосов
/ 19 июля 2010

Вам даже не нужна строка в Application_Error, если в вашем файле web.config установлен defaultRedirect.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...