代码之家  ›  专栏  ›  技术社区  ›  Mike Dinescu

已迁移到IIS 7上的ASP.NET 4.0,无法使自定义错误正常工作

  •  0
  • Mike Dinescu  · 技术社区  · 14 年前

    我有一个ASP.NET Web应用程序项目,它曾经以ASP.NET 2.0为目标。我在承载Web应用程序的Web服务器上安装了ASP.NET 4.0,并将Web应用程序项目更改为Target.NET 4.0。一切正常,除了: 自定义错误处理

    在迁移到.NET 4.0之前,自定义错误曾经起作用。在我的应用程序中,我有一个带有全局应用程序错误处理程序的global.asax页面,该页面在我的开发环境中工作良好(在服务器上也可以与.NET 2.0一起工作),它不适用于带有.NET 4.0安装程序的新IIS 7。我在web.config文件中还有一个customrrors部分,它应该将浏览器重定向到一个自定义错误页,以防出现错误,即使是全局应用程序处理程序也会失败。这在我的机器上也能正常工作,但是在服务器上什么都做不到。我尝试了所有三种不同的设置 模式 属性。

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

    1 回复  |  直到 14 年前
        1
  •  0
  •   Mike Dinescu    14 年前

    这个还是有点神秘,但我发现了。我的错误处理程序都在启动,重定向和以前一样发生,但当请求最终传输到错误处理程序.aspx页(通过server.transfer)时 临终的 . 原因是,在errorhandler.aspx页面上,我将HTTP响应代码设置为200,试图不发送实际的HTTP错误代码,而只是显示一条友好的消息。当我将设置HTTP状态代码为200的代码注释掉后,所有代码都开始正常工作,并且 几乎 就像移动到.NET 4.0之前一样。

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