【问题标题】:Turn IIS7 HTTP Error Handling Off?关闭 IIS7 HTTP 错误处理?
【发布时间】:2011-01-21 16:17:01
【问题描述】:

我刚刚在我参加的一场比赛中安装了我的第一台 Windows Server 2008 / IIS7.5 服务器。我终其一生都无法弄清楚如何完全关闭错误处理。我看到的唯一选项是:

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

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

我的情况:

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

【问题讨论】:

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


    【解决方案1】:

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

    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
    

    【讨论】:

      【解决方案2】:

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

      不幸的是,没有办法告诉 IIS 不要从脚本方面进行干预,所以这总是一个烦人的部署问题。

      【讨论】:

        猜你喜欢
        • 2016-01-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-15
        • 2019-05-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多