我必须使用WSDL文件来创建代理类。 为此,我创建了一个简单的服务并获得相同的WSDL,并使用Internet Explorer中的另存为... 保存到我的磁盘中。 (我希望我在这里做的)。
通过上面的过程,我得到了WSDL文件。
如果我使用以下命令:
D:\Ashok>wsdl CalculatorService.wsdl
我收到如下所示的错误:
错误:无法导入绑定'BasicHttpBinding_ICalculatorService' 来自名字节'http://tempuri.org/'。 - 无法导入操作“添加”。 - 缺少元素“http://tempuri.org/:Add”。
我已经搜索了同样的内容并了解我需要进行一些配置设置,但我无法理解我到底需要做什么。
任何人都可以建议我!
答案 0 :(得分:1)
添加服务引用并将其指向WSDL
修改的 由于您无法使用添加服务参考... http://support.microsoft.com/kb/820122 结束编辑
答案 1 :(得分:1)
如果仔细观察WSDL,请看它里面是这样的:
<s:import schemaLocation="http://..." />
这意味着此WSDL不是独立文件,但它依赖于其他一些文件(这就是WCF决定公开WSDL的方式)。因此,要么保存磁盘上的所有其他文件(并更改schemaLocation以反映其当前位置),这很难,因为您需要多次执行此操作。或者获得flat version of the wsdl。或者在VS中使用“添加服务引用”。
答案 2 :(得分:-1)
我更喜欢从WSDL的文件生成代理。在我的案例中生成此代理的命令行以下一种方式查找:
wsdl /sharetypes file://D:/WSDLs/General.wsdl file:///D:/WSDLs/CalculatorService.wsdl /out:d:\ServiceProxies.cs /n:AssemblyName
更新:您可以在下一篇文章中阅读更多信息 - Multiple web service references sharing types