无法使用useUnsafeHeaderParsing工作

时间:2014-07-16 15:22:23

标签: asp.net iis iis-7

我有一个位于Incapsula Web App防火墙后面的服务器,它可以改变发送到IIS的标头。当我执行特定请求时,我从IIS收到以下错误:服务器提交了协议违规。 Section = ResponseHeader Detail = CR必须后跟LF。在http://www.dragonblogger.com/fix-live-writer-protocol-violation-error-cr-lf/

中也描述了此行为

根据此页面http://msdn.microsoft.com/en-us/library/65ha8tzh%28v=vs.80%29.aspx我应该能够通过将useUnsafeHeaderParsing设置为true来接受这些标头。所以我尝试将此添加到虚拟目录中的web.config,从中应该处理特定请求:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.net>
        <settings>
            <httpWebRequest useUnsafeHeaderParsing="true" />
        </settings>
    </system.net>
</configuration>

重新启动IIS后,它仍然无效。我也尝试将其添加到c:\ windows \ Microsoft.NET \ framework \ config \ web.conf中,但它也不起作用。

有没有人知道我错过了什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

尝试将Azure Application Insights连接到我们的某个网站时(也由Incapsula“保护”),我们遇到了相同的响应标头违规。将useUnsafeHeaderParsing设置为true也不起作用。

咨询Incapsula支持服务台帮助我们:看起来Incapsula正在为响应添加一个不规则的cookie,以将访客识别为机器人或人类访客。向响应添加不规则cookie可能是响应标头违规的原因。 Incapsula也有Javascript分类,所以我们让他们禁用不规则cookie并启用Javascript分类。

这就是我们解决违规错误的方法。