将异常信息从Global.asax传递到ErrorPage.aspx

时间:2012-07-11 20:51:30

标签: asp.net error-handling message-passing pageobjects

我在Global.asax中有一个全局错误处理程序,我试图在名为ErrorPage.aspx的页面中显示异常信息。我已经阅读了微软关于在asp.net页面之间传递信息的页面(http://msdn.microsoft.com/en-us/library/6c3yckfw.aspx)。我认为其中任何一个都不会起作用:

  • QueryString:我担心异常的长度会 超过QueryString的最大长度。
  • 发布信息:Global.asax页面没有任何表单字段。
  • 会话状态:会话状态在Global.asax中不可用
  • 公共价值观:我认为这只适用于.aspx页面
  • 来自源页面的控制:Global.asax无法使用asp.net控件。

我目前的想法是创建一个ErrorPage对象的实例并导航到它(如在Windows窗体应用程序中那样)是合乎逻辑的,但我不知道该怎么做或者如果它可以在asp.net。

最终,我正在寻找一种方法来显示标准.aspx页面中全局错误处理程序捕获的错误。任何建议都会有所帮助。

1 个答案:

答案 0 :(得分:1)

我会做什么:

  1. 记录异常信息,包括日志文件中的堆栈跟踪,
  2. 使用错误代码重定向到ErrorPage(常规http错误代码+通用'未知错误'一个+可能是对应用程序有意义的一些自定义错误),在查询字符串参数中传递,
  3. 显示此错误代码的预定义消息。
  4. 没有理由向最终用户显示实际的错误消息,更不详细的错误信息。如果要显示完整信息以进行调试,请在web.config中关闭自定义错误