问题:
手上有个项目,需要使用另一个开发小组开发的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文件路径(包括文件名)
问题解决
如果大家有更好的解决方案,欢迎共享出来。谢谢