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

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 будет два разных пространства имен (подсказка: в одном отсутствует завершающий слеш).

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

Другие вопросы по тегам