代码之家  ›  专栏  ›  技术社区  ›  Vance Lucas

关闭IIS7 HTTP错误处理?

  •  33
  • Vance Lucas  · 技术社区  · 14 年前

    我刚在第一台WindowsServer2008/iis7.5服务器上安装了我参加的比赛。我一辈子都不知道该怎么做 完全关闭错误处理 . 我看到的唯一选择是:

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

    我想完全关闭这个功能,但我看不到任何方法可以做到这一点。我错过什么了吗?

    我的处境:

    我有一个RESTful的PHP框架,它捕获异常并在尚未处理异常时发出HTP500状态。然后,它将指定的异常消息放入响应主体,并将其发送到浏览器。这在Apache中工作得很好-发送正确的头文件并向用户显示消息。然而,在IIS中,4xx和5xx HTTP状态代码的响应总是被截取并注入一些其他准备好的消息或HTML文件,这正是我不希望它再做的事情。请帮助!

    2 回复  |  直到 12 年前
        1
  •  64
  •   Anton Gogolev    13 年前

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

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

    解决方案是手动编辑 Web.CONFIG 包含此自定义“httperrors”条目的文件:

    <?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
    
        2
  •  2
  •   bobince    14 年前

    在“IIS管理器->站点->错误页”中,右键单击每个错误页,然后选择“删除”。

    不幸的是,没有一种方法可以告诉IIS不要干扰脚本端,所以这始终是一个恼人的部署问题。