0

我有一个用于 ASP.NET 2.0 的 ASP.NET Web 应用程序项目。我在托管 Web 应用程序的 Web 服务器上安装了 ASP.NET 4.0,并将 Web 应用程序项目更改为面向 .NET 4.0。一切正常,但有异常:自定义错误处理

在迁移到 .NET 4.0 之前,自定义错误曾经有效。在我的应用程序中,我有一个带有全局应用程序错误处理程序的 Global.asax 页面,该页面在我的开发环境中运行良好(并且在服务器上也适用于 .NET 2.0),但不适用于带有 . NET 4.0 设置。我在 web.config 文件中还有一个 customErrors 部分,它应该将浏览器重定向到自定义错误页面,以防错误导致即使全局应用程序处理程序也会失败。这在我的机器上也可以正常工作,但无法在服务器上执行任何操作。我确实尝试了mode属性的所有三种不同设置。

如果有人知道为什么会发生这种情况,我将不胜感激任何反馈!

4

1 回答 1

0

这个仍然有点神秘,但这是我发现的。我的错误处理程序都在触发,并且重定向就像以前一样发生,但是当请求最终转移到错误处理程序 .aspx 页面(通过 Server.Transfer)时,它正在死去。原因是在 ErrorHandler.aspx 页面上,我将 HTTP 响应代码设置为 200,试图不发回实际的 HTTP 错误代码,而是简单地显示一条友好的消息。一旦我注释掉将 HTTP 状态代码设置为 200 的代码,一切都开始正常工作,几乎就像在迁移到 .NET 4.0 之前一样。

我仍然不确定为什么尝试将 HTTP 状态代码设置为 200 会导致奇怪的行为,但我很高兴我找到了它,纠正了问题并且可以继续我的生活..

于 2010-06-28T17:18:08.603 回答