0

我必须使用 WSDL 文件来创建代理类。为此,我创建了一个简单的服务并获得了相同的 WSDL,并使用Internet Explorer 中的Save as... 将其保存到我的磁盘中。(我希望我在这里做)。

通过上述过程,我得到了 WSDL 文件。

如果我使用以下命令:

D:\Ashok>wsdl CalculatorService.wsdl

我收到一些错误,如下所示:

错误:无法从名称速度“ http://tempuri.org/ ”导入绑定“BasicHttpBinding_ICalculatorService ”。- 无法导入操作“添加”。-缺少元素“ http://tempuri.org/:Add ”。

我已经用谷歌搜索了相同的内容,并了解我需要进行一些配置设置,但我不明白我到底需要做什么。

任何人都可以请建议我!

4

3 回答 3

1

添加服务引用并将其指向 WSDL

编辑 因为你不能使用添加服务参考... http://support.microsoft.com/kb/820122 end edit

于 2013-08-05T13:27:28.953 回答
1

如果您仔细查看 WSDL,您会发现它内部有这样的内容:

<s:import schemaLocation="http://..." />

这意味着此 WSDL 不是独立文件,而是依赖于其他一些文件(这就是 WCF 决定公开 WSDL 的方式)。因此,要么将所有其他文件保存在磁盘上(并更改 schemaLocation 以反映它们的当前位置),这很困难,因为您需要多次执行此操作。或者获取wsdl 的平面版本。或者在VS中使用“添加服务引用”。

于 2013-08-06T22:11:30.347 回答
-1

我更喜欢从 WSDL 的文件中生成代理。在我的情况下,用于生成此代理的命令行如下所示:

wsdl /sharetypes file://D:/WSDLs/General.wsdl file:///D:/WSDLs/CalculatorService.wsdl /out:d:\ServiceProxies.cs /n:AssemblyName

更新:您可以在下一篇文章中阅读更多信息 -多个 Web 服务引用共享类型

于 2013-08-08T18:48:41.100 回答