1

我创建了一个小型 WCF 服务(托管在 IIS 中)并使用 Chrome 获取它的 wsdl,将其放入 .wsdf 文件中,然后想用它svcutil test.wsdl来生成客户端代理,但我收到了这个错误:

错误:无法导入 wsdl:port 详细信息:导入 wsdl:port 所依赖的 wsdl:binding 时出错。wsdl:binding 的 XPath: //wsdl:definitions[@targetNamespace='http://tempuri.org/' ]/wsdl:binding[@name='WSHttpBinding_IService1'] 错误源的 XPath: //wsdl:definitions[@ targetNamespace='http://tempuri.org/' ]/wsdl:service[@name='Service1']/wsdl:port[@name='WSHttpBinding_IService1']

其他人遇到过这个并找到解决方案吗?

更新:正如 John Saunders 所建议的那样,谢谢,当我将它直接指向 url 时它就可以工作。然而,这是我的小测试用例,看看 svcutil 可以做什么,因为我预计未来几天会从第 3 方获取 wsdl 文件,并且可能会遇到同样的问题。当我采用最简单的开箱即用生成的 .svc 时,我似乎没有包含块。

4

1 回答 1

3

如果 wsdl 中有Include块 - 并且它们在由 WCF 生成时经常这样做 - 那么您可能只保存“主”wsdl 文件而不是所有引用的文件。

这样做的结果是主文件没有任何意义。正如 John Saunders 建议的那样,尝试将 URL 提供给 svcutil.exe 而不是保存文件。

于 2010-12-22T02:13:14.107 回答