wsdl.exe / sharetypes

Я работаю с несколькими сторонними веб-сервисами (от одного и того же поставщика), которые, похоже, используют одну и ту же серверную часть структуры объектов. Одна из служб позволяет мне запрашивать список пользователей по ролям, а другая позволяет запрашивать отдельного пользователя по идентификатору. Чтобы это работало наилучшим образом, необходимо, чтобы пользователи, возвращенные из обеих служб, могли использоваться взаимозаменяемо.

Введите 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


person Wes P    schedule 28.01.2009    source источник


Ответы (2)


Схема для DataExportService имеет tns и целевое пространство имен, определенное как http://www.senior-systems.com/. Схема для UserProfileService имеет tns и целевое пространство имен, определенное как http://senior-systems.com/.

Они разные, даже если они разрешили один и тот же веб-сервер при использовании в качестве URL-адреса. Пространства имен XML сравниваются в текстовом виде, а не в соответствии с синтаксисом URL. Например, http://senior-systems.com/ и http://senior-systems.com будут двумя разными пространствами имен (подсказка: в одном отсутствует косая черта в конце).

person John Saunders    schedule 21.07.2009

Согласно документации MSDN, чтобы это работало , пространство имен, имя и подпись провода должны быть идентичны во всех службах. Что-то похоже, что они не совпадают, так что это хорошее место для начала поиска.

person Ray Booysen    schedule 28.01.2009
comment
Я не пытаюсь показаться тупым;) а какая подпись провода? - person Wes P; 29.01.2009
comment
Привет, вес. это будет полное имя дочернего элемента элемента soap: body в вашем wsdl. - person Ray Booysen; 29.01.2009
comment
Я благодарен за вашу помощь, но мне понадобится еще немного, чтобы продолжить. Я вижу несколько элементов soap: body, расположенных внутри элементов wsdl: input и wsdl: output для операций wsdl:. Все они пусты и выглядят одинаково. Все эти 3 службы имеют одинаковые NS и имена объектов. : - \ - person Wes P; 29.01.2009
comment
Можем ли мы увидеть часть мыльного тела? - person Ray Booysen; 29.01.2009
comment
все 3 wsdl доступны по ссылкам выше, но мыло: body выглядит как ‹soap: body use = literal /›. Или вы хотите увидеть образец запроса / ответа мыла? Спасибо :) - person Wes P; 29.01.2009