使用C#的HttpWebRequest类发送http请求时,出现了

服务器提交了协议冲突. Section=ResponseStatusLine   在 System.Net.HttpWebRequest.GetResponse()

的异常,google之后,大部分的解决方案都说在app.config里面加上

<system.net>
<settings>
<httpWebRequest useUnsafeHeaderParsing = "true"/>
</settings>
</system.net>

这么一段,但是我加了之后,重新生成,问题还是存在。

真正的解决方法是: 将http请求的Keep-Alive设置为false。问题解决。

从此多线程发送http请求再无这类问题!!

原因是这样的,ASP.Net 2.0 增强了安全性,对一些有危害的http 头进行了判断,比如url中有空格的情况,以帮助网站提高网络攻击的防御能力。如果你的http头中有一些ASP.NET 认为是有危害的信息,则会返回这个错误。你访问百度没有问题,是因为百度根本就不是asp.net 做的。 这个问题的解决办法是在你的 web.config 中添加如下配置: 我花了一整天的时间来解决这个问题。我有一个自定义的网络 服务器 ,并请求从Chrome或POSTman ReST客户端工作正常。一旦我在c#中使用webclient或httpwebrequest,我就会得到: 服务器 违反 协议 。 S ect ion = Response Status Line 尝试将zip文件传输到客户端时。 服务器 违反了 协议 。 S ect ion = Response Status Line in c#我...   最近发现对有的网站用HttpWebrequest抓取网页的时候会报错,捕获异常提示:" 服务器 提交 协议 冲突 S ect ion = Response Status Line ”,改用WebClient也是同样问题。  WebClient是对HttpWebrequest进一步进行了封装。  最后终于找到问题根源:The  server  committed  a  protocol  violat ion 今天更新了一个网站,新增了一个页面,调用WebService,在测试环境好好的,部署到正式环境后就莫名报错: 服务器 提交 协议 冲突 . S ect ion = Response Status Line 网上查了好多解决方案,有说加这个配置节的: <system.net> <settings> <httpWebRequest useUnsafeHea... <br />今天早上开发的时候出现了一个很奇的问题,写完代码一运行,vs.Net提示 服务器 提交 协议 冲突 S ect ion = Response Status Line ,很是奇怪,baidu一下,只找到几条记录,看到遇到这种问题的人不多。<br />在阿牛.乐园的博客中看到了作者的一个日志,只记录了抓包的情况,没有解决的方案,看来只好自己找了。<br />  查看IIS,发现IIS已经被停止,重启IIS报“发生意外错误(0x8ffe2740)”错误,到网上一查,这个错误是因为80端口被占用,用netstat -a - 自己写了个程序,利用post获取某网站的信息,当进行到httpWeb Response = (HttpWeb Response )httpWebRequest.Get Response ()时会提示“ 服务器 提交 协议 冲突 . S ect ion = Response Status Line ”(有时出有时不出,好像跟电脑或网络有关) 百度了下,几个人都说要改webclient等来 提交 请求,但我仍想利用httpWebReq