2012-07-11 58 views
0

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

  • 查询字符串:我担心异常的长度将超过 查询字符串的最大长度。
  • 发布信息:Global.asax页面没有任何表单域。
  • 会话状态:会话状态不可用在Global.asax中
  • 公共价值观:我认为这只是与.aspx页作品从源页面
  • 控制:Global.asax中不能有asp.net控制。

我现在的想法是,这将是合乎逻辑的创建的errorPage对象的实例并导航到它(因为你可以在Windows做窗体应用程序),但我不知道怎么做,或如果它可能在asp.net中。

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

+0

['Server.GetLastError()'](http://msdn.microsoft.com/zh-cn/library/system。 web.httpserverutility.getlasterror.aspx)可能会有帮助 – MilkyWayJoe 2012-07-11 20:57:57

+0

@MilkyWayJoe,由于我不明白的原因,Server.GetLastError()在我的错误页面上调用时返回null。 – Brynne 2012-07-12 14:09:05

+0

也许这已经被'Application_Error'清除了? – MilkyWayJoe 2012-07-12 14:13:25

回答

1

我会怎么做:

  1. 记录异常的信息,包括在日志文件中的堆栈跟踪,
  2. 重定向到错误代码(普通的HTTP ErrorCode的+通用“未知错误”一+一的errorPage也许查询字符串参数
  3. 显示此错误代码的预定义消息。

没有理由向最终用户显示实际的错误消息,更详细的错误信息不能承受。如果要显示完整信息以进行调试,请在web.config中关闭自定义错误