我正在使用似乎使用相同对象结构服务器端的多个第三方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
答案 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的工作原理,名称空间,名称和电线签名在所有服务中必须相同。看起来他们没有匹配,所以这些是开始寻找的好地方。