Передача информации об исключении из Global.asax в ErrorPage.aspx

У меня есть глобальный обработчик ошибок в Global.asax, и я пытаюсь отобразить информацию об исключении на странице ErrorPage.aspx. Я прочитал страницу Microsoft о передаче информации между страницами asp.net (http://msdn.microsoft.com/en-us/library/6c3yckfw.aspx). Я не думаю, что что-то из этого сработает:

  • QueryString: меня беспокоит, что длина исключения превысит максимальную длину QueryString.
  • Информация о публикации: на странице Global.asax нет полей формы.
  • Состояние сеанса: состояние сеанса недоступно в Global.asax
  • Общедоступные значения: я думаю, это работает только со страницами .aspx.
  • Управление со страницы источника: Global.asax не может иметь элементы управления asp.net.

Моя текущая мысль заключается в том, что было бы логично создать экземпляр объекта ErrorPage и перейти к нему (как вы могли бы сделать в приложении Windows Forms), но я не знаю, как это сделать и возможно ли это в asp .сеть.

В конечном итоге я ищу способ отображать ошибки, обнаруженные глобальным обработчиком ошибок, на стандартной странице .aspx. Любые предложения будут полезны.


person Emily    schedule 11.07.2012    source источник
comment
Может оказаться полезным Server.GetLastError().   -  person MilkyWayJoe    schedule 12.07.2012
comment
@MilkyWayJoe, по непонятным мне причинам Server.GetLastError () возвращает null при вызове на моей странице ошибки.   -  person Emily    schedule 12.07.2012
comment
Может, это уже выясняется в Application_Error?   -  person MilkyWayJoe    schedule 12.07.2012


Ответы (1)


Что бы я сделал:

  1. Записывать информацию об исключениях, включая трассировку стека, в файл журнала,
  2. Перенаправление на ErrorPage с кодом ошибки (обычные коды ошибок http + общая «неизвестная ошибка» +, возможно, некоторые пользовательские ошибки, которые имеют смысл для приложения), переданный в параметре строки запроса,
  3. Отобразите предопределенное сообщение для этого кода ошибки.

Нет особых причин отображать фактические сообщения об ошибках для конечных пользователей, не считая более подробной информации об ошибках. Если вы хотите отображать полную информацию для целей отладки, отключите настраиваемые ошибки в web.config.

person scrwtp    schedule 11.07.2012