我们正在使用 IPDR,它在某种意义上工作得很好,它阻止了我们期望它阻止的东西并允许它应该允许的东西。我们感到困惑的是为什么它将状态码返回给客户端(500)。
<location path="pathtoblock">
<system.webServer>
<security>
<ipSecurity allowUnlisted="false" denyAction="NotFound" >
<clear/>
<add allowed="true" ipAddress="127.0.0.1" />
<add allowed="true" ipAddress="192.168.1.1" />
</ipSecurity>
</security>
</system.webServer>
</location>
从上面可以看出,我们正在使用denyAction="NotFound"
. 可以理解,所以我们预计会出现 404 错误,但我们在浏览器中收到 500 错误和错误消息,"The page cannot be displayed because an internal server error has occurred."
我检查了 IIS 日志:
date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Referer) sc-status sc-substatus sc-win32-status time-taken
2015-11-18 18:06:25 192.168.1.2 GET /pathtoblock - 443 - 192.168.1.3 Mozilla/5.0+(Windows+NT+6.3;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/46.0.2490.86+Safari/537.36 - 404 503 5 62
为什么我们没有收到预期的 404?