关于Webservice Web引用报错:缺少 soap:operation 绑定的解决

来源:互联网 发布:手机知乎怎么看提问者 编辑:程序博客网 时间:2024/06/01 10:52

    问题:

    手上有个项目,需要使用另一个开发小组开发的WEBSERVICE接口,该接口使用JAVA开发。开发小组提供WEBSERVICE URL后,我通过VS 2010导入WEB引用时发生以下错误:

    错误: 无法从命名空间“http://xxx”导入绑定“DefaultBinding”。

           - 无法导入操作“QueryInfo”。
           - 命名空间“http://xxx”中的操作绑定“QueryInfo”。包含无效语法。缺少 soap:operation 绑定。 

    在查看WSDL后,发现在节点中缺少“soap:operation"节点。猜测原因是:

    开发环境使用.NET Framework 4.0,而使用VS2010WEB引用时,可能是采用WCF机制引起的。

    可能的解决方案有以下:

    1. 摒弃.NET,采用JAVA开发。(由于项目已至尾声,可能性微乎其微)

    2. 使用WEBSERVICE 3.0,生成WSDL对应的CS文件

    3. 直接取得WSDL文件,然后手工添加soap:operation节点,之后使用.NET自带的WSDL工具生成CS文件

    最后我采用第三种方案。对方提供了WSDL文件,我手工在文件里添加了节点,类似以下:

    <soap:operation soapAction=""/>

    然后通过工具WSDL生成CS文件

    wsdl wsdl文件路径(包括文件名) /out::CS文件路径(包括文件名)

    问题解决

    如果大家有更好的解决方案,欢迎共享出来。谢谢