.NET中的SOAP客户端引用现有WSDL

时间:2017-05-24 13:15:41

标签: c# visual-studio web-services soap wsdl

我已经阅读了关于SOAP and WSDL in .NET

这个有用的帖子

我正在尝试构建一个C#SOAP客户端,我已按照说明添加了一个"服务引用"对于WSDL,但是应该生成的客户端代理是生成的。我只能看到类,接口,枚举等......我无法宣布任何内容。我不能:

MyService.MyWebServiceSoapClient ws = new MyService.MyWebServiceSoapClient();

因为我没有客户端来初始化。

所以我尝试打开开发人员控制台并输入

wsdl.exe <url_to_my_wsdl>

但它返回了一个我无法理解的错误。沿线的东西:

  

无法导入操作&some;操作&#39;   元素参数,属于命名空间urn:my:namespace,在2个不同的上下文中导入:PrimitiveMapping,MembersMapping。

有什么想法吗?谢谢。

1 个答案:

答案 0 :(得分:0)

我自己找到了解决这个问题的方法。经过大量的试验和错误修改后,我得出结论“&#34;参数&#34;不欢迎进入.NET环境。所以我用&#34; params&#34;更改了它。现在它被wsdl.exe正确导入

因此我以前的WSDL的一部分是:

<wsdl:message name="isServiceOnline">
    <wsdl:part name="parameters" element="MyElement"></wsdl:part>
</wsdl:message>

新版本是:

<wsdl:message name="isServiceOnline">
    <wsdl:part name="params" element="MyElement"></wsdl:part>
</wsdl:message>