wsdl.exe / sharetypes

时间:2009-01-28 21:48:14

标签: .net web-services wsdl.exe

我正在使用似乎使用相同对象结构服务器端的多个第三方Web服务(来自同一供应商)。其中一项服务允许我按角色查询用户列表,另一项允许我按ID查询单个用户。为了使这种方式尽可能好地工作,从这两种服务返回的用户需要能够互换使用。

输入wsdl.exe。我知道/ sharetypes做了我想要它做的事情,但是,当我生成我的代理时,最终仍然是对象的多个版本(即Person,Person1,...)。

我正在执行的命令如下:

wsdl.exe /sharetypes /language:VB http://mbptest2.seniormbp.com:8080/SeniorSystemsWS/UserManagementService.asmx?wsdl http://mbptest2.seniormbp.com:8080/SeniorSystemsWS/DataExportService.asmx?wsdl http://mbptest2.seniormbp.com:8080/SeniorSystemsWS/UserProfileService.asmx?wsdl

2 个答案:

答案 0 :(得分:2)

DataExportService的架构具有tns,目标命名空间定义为http://www.senior-systems.com/。 UserProfileService的模式具有tns,目标名称空间定义为http://senior-systems.com/

这些是不同的,即使它们在用作URL时恰好解析为同一个Web服务器。 XML命名空间在文本上进行比较,而不是根据URL语法进行比较。例如,http://senior-systems.com/http://senior-systems.com将是两个不同的命名空间(提示:一个缺少尾部斜杠)。

答案 1 :(得分:1)

根据MSDN documentation的工作原理,名称空间,名称和电线签名在所有服务中必须相同。看起来他们没有匹配,所以这些是开始寻找的好地方。