服务器提交了协议冲突. Section=ResponseStatusLine

今天更新了一个网站,新增了一个页面,调用WebService,在测试环境好好的,部署到正式环境后就莫名报错:

服务器提交了协议冲突. Section=ResponseStatusLine

网上查了好多解决方案,有说加这个配置节的:

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

然而并没有什么卵用啊!

一个偶然的发现,让我找到了真正的原因。

我在开发环境不断调试,我开了一个IE的新Session,发现WebService不能直接访问了,被代理阻止了,WTF!关掉代理,立即好了。

我是用svcutil生成的output.config嵌入到我的web.config里的,看到里面的ServiceModel是这样的:

<system.serviceModel>
  <bindings>
    <basicHttpBinding>
      <binding name="xxx" closeTimeout="00:01:00" ...
         useDefaultWebProxy="true">
         ...

就是这句useDefaultWebProxy="true"让他自动使用了代理。由此可见服务器上肯定设置了什么代理,因为这个ws是通过防火墙策略做跨网段访问的,所以被自动列入了代理白名单,然而代理并不能真正访问到这个网段,于是返回的其实是被代理阻止的信息:

<Html><Body><H1> 10.xx.xx.xx is prohibited by proxy.</H1></Body></Html>

难怪会解析出错了,被耽误了不少时间。

不管是WebService还是WCF都会遇到相似的问题。记下来以免忘记。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值