代码之家  ›  专栏  ›  技术社区  ›  Wes P

wsdl.exe/共享类型

  •  5
  • Wes P  · 技术社区  · 16 年前

    我正在处理多个第三方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 回复  |  直到 16 年前
        1
  •  2
  •   John Saunders    15 年前

    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 将是两个不同的命名空间(提示:其中一个缺少尾随斜杠)。

        2
  •  1
  •   Ray Booysen    16 年前

    根据 MSDN documentation 要使其生效,所有服务中的命名空间、名称和线签名必须相同。有些东西看起来不匹配,所以这是一个很好的开始寻找的地方。