我有一个位于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中,但它也不起作用。
有没有人知道我错过了什么?
谢谢!
答案 0 :(得分:1)
尝试将Azure Application Insights连接到我们的某个网站时(也由Incapsula“保护”),我们遇到了相同的响应标头违规。将useUnsafeHeaderParsing设置为true也不起作用。
咨询Incapsula支持服务台帮助我们:看起来Incapsula正在为响应添加一个不规则的cookie,以将访客识别为机器人或人类访客。向响应添加不规则cookie可能是响应标头违规的原因。 Incapsula也有Javascript分类,所以我们让他们禁用不规则cookie并启用Javascript分类。
这就是我们解决违规错误的方法。