我刚刚在我的第一台Windows Server 2008 / IIS7.5服务器上安装了我正在参加的比赛。我不能为我的生活弄清楚如何关闭错误处理完全。我看到的唯一选择是:
我想彻底关闭这个功能,但我认为没有办法做到这一点。我错过了什么吗?
我的情况:
我有一个RESTful PHP框架,可以捕获异常并在尚未处理异常时发出HTTP 500状态。然后,它将指定的异常消息放入响应主体并将其发送到浏览器。这在Apache中运行良好 - 发送正确的标头并将消息显示给用户。但是,在IIS中,4xx和5xx HTTP状态代码的响应始终被截获并注入其他一些准备好的消息或HTML文件,这正是我不想再做的事情。请帮忙!
答案 0 :(得分:66)
经过一些更广泛的搜索,我在这里找到了答案:
解决方案是使用此自定义“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不要干扰脚本端,因此它总是令人讨厌的部署问题。