Предаване на информация за изключение от 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 .net.

В крайна сметка търся начин да покажа грешки, уловени от глобален манипулатор на грешки, в стандартна .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