【发布时间】:2010-05-24 20:50:26
【问题描述】:
如何在不使用 Server.Transfer 或重定向的情况下将一些数据从 Global.asax 事件处理程序传递到 ASP.NET 中的自定义错误页面?
【问题讨论】:
-
Global.asax 事件处理程序是在导致错误的页面的请求期间发生,还是在错误页面本身的请求期间发生?
如何在不使用 Server.Transfer 或重定向的情况下将一些数据从 Global.asax 事件处理程序传递到 ASP.NET 中的自定义错误页面?
【问题讨论】:
假设您在 global.asax 中捕获未处理的异常,我认为您不能。此时您不再处于任何人的会话中,因此您几乎与错误失去了所有联系,除了异常本身。
您可以尝试通过为 Page_Error 事件添加处理程序来捕获每个页面中未处理的异常。您可以通过让每个页面子类化您自己的应用程序“页面基”类而不是 System.Web.UI.Page 来集中其中的一些,并确保您的“页面基”类继承自 System.Web.UI.Page。然后让您的页面基类处理 Page_Error。但是此时您不会使用特定于页面的代码,因此您仍然需要找出一种将数据传递到该自定义错误页面的方法。
【讨论】: