ASP.NET中的自定义错误问题

时间:2010-01-30 21:07:04

标签: asp.net

我的设置:

  • Windows 7旗舰版
  • IIS 7
  • Visual Studio 2008

情景:

  • 在本地建立一个简单的网站
  • 我的应用程序中发生异常(这很完美,因为我正在尝试设置自定义错误页面)
  • 在web.config文件中没有设置customErrors,我得到有关错误的详细信息
  • 在web.config文件中设置了customErrors,出现错误时,我收到以下页面:

运行时错误

描述:服务器上发生了应用程序错误。此应用程序的当前自定义错误设置可防止查看应用程序错误的详细信息。

还有更多的文字,但我相信你以前都见过它。此时,URL为:

http://localhost/bluheron/Error.aspx?aspxerrorpath=/bluheron

所以,看起来它重定向到我的错误页面(Error.aspx),但我没有看到我的错误文本(“发生了错误。请再试一次。”)。相反,我得到了一个带有其他文本的时髦网址,包括如何设置我的web.config文件的说明,顺便提一下,包含这个:

<customErrors mode="On" defaultRedirect="Error.aspx" />

它位于默认位置,位于 system.web 部分内,位于 configuation 部分。

顺便说一句,我的Error.aspx页面位于我的应用程序的根目录中。

有人可以解释一下这个花哨的网址是什么以及为什么我的简单错误页面没有显示?

谢谢, 杰

1 个答案:

答案 0 :(得分:1)

错误重定向正是通常使用customErrors发生的事情......但是,您可以禁用此行为并保留原始网址(不会发送302将您的用户重定向到错误页面的网址)。这将执行/发送错误页面的输出:

redirectMode="ResponseRewrite"添加到customErrors声明:

<customErrors mode="On" defaultRedirect="Error.aspx" redirectMode="ResponseRewrite" />

如果您仍然遇到相同的行为,整个应用程序出现问题,您应该关闭customErrors并查看问题所在(这会发生在无效的web.config和许多其他情况下)。