.net 错误:无法使用svcutil导入wsdl:端口

.net 错误:无法使用svcutil导入wsdl:端口,.net,wcf,compiler-errors,svcutil.exe,.net,Wcf,Compiler Errors,Svcutil.exe,我创建了一个小型WCF服务(托管在IIS中),并使用Chrome获取该服务的wsdl,将其放入.wsdf文件中,然后想使用svcutil test.wsdl从中生成客户端代理,但我遇到了以下错误: 错误:无法导入wsdl:port 详细信息:导入wsdl:port依赖的wsdl:binding时出错 继续。 XPath到wsdl:binding://wsdl:definitions[@targetNamespace='1]http://tempuri.org/' ]/wsdl:binding[@

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

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

还有谁遇到过这个问题并找到了解决方案


更新:正如约翰·桑德斯所建议的,谢谢你,当我把它直接指向url时,它就起作用了。然而,这是我的一个小测试用例,以了解svcutil可以做些什么,因为我预计未来几天将从第三方获取wsdl文件,并且可能会遇到相同的问题。由于我采用了最简单的开箱即用生成的.svc,我似乎没有包含块。

如果wsdl中有
include
块,并且通常由WCF生成,那么您可能只保存“主”wsdl文件,而不是所有引用的文件


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

我打赌它确切地告诉了您它遇到了什么问题。你确定这就是所有的错误输出吗?另外,当您将服务的URL直接指定到svcutil.exe时会发生什么情况?对于任何未来的搜索者来说:我对WSCF.blue插件有问题,这是相同的根本原因。您可以通过将所有包含的导入复制到WSDL文件中,手动组装WSDL来生成一次性代理。这并没有解决我的问题(这是一个蹩脚的解决方法),但它是一个有用的诊断技巧,可以确认问题的所在。为了跟进我的具体问题,我在WSDL中指定了导入标记,如下所示:。WSCF.blue不喜欢在模式标记中同时使用targetNamespace和在导入标记中同时使用namespace。从导入标记中删除名称空间属性解决了我的工具问题。