zoukankan      html  css  js  c++  java
  • 解决WebService/WCF调用时报错"服务器提交了协议冲突. 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都会遇到相似的问题。记下来以免忘记。

  • 相关阅读:
    android 样式开发
    Android studio 开发环境搭建
    nodejs+express 4.x笔记
    C#: switch语句的重构『网摘』
    从实例谈OOP、工厂模式和重构
    ASP.NET FileUpload 上传文件类型验证
    asp.net 网页中播放 flash 和flv
    数据库设计中主键问题
    修改Sqlserver实例默认排序规则
    查看sqlserver被锁的表以及如何解锁
  • 原文地址:https://www.cnblogs.com/pleiades/p/6419070.html
Copyright © 2011-2022 走看看