Сервисная версия WCF / WSDL - PullRequest
2 голосов
/ 15 июня 2011

Я ищу способ версии сервисов.

Пока что мы установили принцип слабого версионирования. Для минорных версий мы поддерживаем обратную совместимость. Для взлома изменений мы вынуждаем новую основную версию.

Для основной версии мы не возражаем против изменения названия службы (мы могли бы изменить пространство имен, но мы согласились на имя).

Для вспомогательной версии мы не хотим менять имя или пространство имен, поскольку это может нарушить работу клиентов, использующих более ранние вспомогательные версии.

Мой вопрос: как мы могли бы узнать, как реализовать обнаружение версий? Кажется, в WSDL нет места для размещения «информации», которая бы не нарушала контракт. То, что я хочу, - это способ сказать, для какой среды (скажем, промежуточная или производственная), какая версия службы развернута в настоящее время.

WSDL казался естественным для этого, поскольку он доступен через HTTP-GET (REST) ​​и не требует введения некоммерческой операции службы SOAP (например, int GetCurrentVersion ()).

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 15 июня 2011

WSDL напрямую не имеет такой функции, но вы можете создать собственное поведение и, например, добавить wsdl:documentation, описывающую версию вашего контракта. Описание добавления пользовательского поведения, влияющего на WSDL, содержится в моем другом ответе . Полный пример манипуляции wsdl:documentation на MSDN .

0 голосов
/ 15 июня 2011

WSDL имеет возможность содержать теги "wsdl: document" для добавления документации, но для программного доступа вы, вероятно, захотите использовать пользовательские заголовки мыла.Это сообщение в блоге показывает, как вы можете использовать пользовательские заголовки.Код WCF Extras имеет несколько изящных способов работы с пользовательскими заголовками мыла и тегами документов wsdl.@marc_s ответ на этот вопрос - другой подход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...