关闭IIS7 HTTP错误处理?

时间:2010-02-26 23:34:42

标签: windows iis-7 windows-server-2008

我刚刚在我的第一台Windows Server 2008 / IIS7.5服务器上安装了我正在参加的比赛。我不能为我的生活弄清楚如何关闭错误处理完全。我看到的唯一选择是:

  • 定制
  • 详细
  • 详细的本地,远程自定义

我想彻底关闭这个功能,但我认为没有办法做到这一点。我错过了什么吗?

我的情况:

我有一个RESTful PHP框架,可以捕获异常并在尚未处理异常时发出HTTP 500状态。然后,它将指定的异常消息放入响应主体并将其发送到浏览器。这在Apache中运行良好 - 发送正确的标头并将消息显示给用户。但是,在IIS中,4xx和5xx HTTP状态代码的响应始终被截获并注入其他一些准备好的消息或HTML文件,这正是我不想再做的事情。请帮忙!

2 个答案:

答案 0 :(得分:66)

经过一些更广泛的搜索,我在这里找到了答案:

http://blogs.msdn.com/webdevelopertips/archive/2009/08/24/tip-93-did-you-know-php-and-custom-error-pages-configuration.aspx

解决方案是使用此自定义“httpErrors”条目手动编辑 web.config 文件:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <httpErrors existingResponse="PassThrough" />
    </system.webServer>
</configuration>

但是,由于IIS 7.0“锁定”功能,您可能会得到“此配置部分不能在此路径中使用。当部分锁定在父级别时会发生这种情况。”错误。要解决此问题,请在命令提示符中执行以下命令:

cd C:\Windows\System32\inetsrv

appcmd unlock config /section:httpErrors

答案 1 :(得分:2)

在IIS管理器中 - &gt;网站 - &gt;错误页面,右键单击每个错误页面并选择“删除”。

不幸的是,没有办法告诉IIS不要干扰脚本端,因此它总是令人讨厌的部署问题。