Программная проверка соответствия веб-ссылки конечной точке в .NET 3.5 - PullRequest
1 голос
/ 24 августа 2010

Я нахожусь в неудачной ситуации, когда мне нужно использовать веб-сервисы, для которых не определен контракт, в соответствии с обычной практикой SOA.Это означает, что мне нужно защититься от изменений в веб-сервисах, которые нарушают мои веб-ссылки.В прошлом серьезные изменения в новых версиях веб-служб, такие как изменение значений перечисления, вызывали трудности при отладке.

Я использую веб-ссылки для доступа к веб-службам.В основном я использую конечные точки ASMX.

Кажется, что разумным способом защиты от критических изменений является проверка конечной точки для каждого веб-сервиса, гарантируя, что WSDL, определенный для сервиса, соответствует текущей схеме конечной точки.Я хотел бы сделать это во время сборки и, возможно, также при запуске приложения.Предпочтительно проверка не будет выполнена только для прерывания изменений, а это означает, что добавление новых элементов в схему конечной точки будет в порядке.

Один из способов сделать это - сгенерировать временный WSDL из конечной точки и убедиться, чтокаждый элемент XML в существующем WSDL содержится во временном WSDL.Но это кажется странным, и мне интересно, есть ли существующий инструментарий, или лучший способ сделать это.

Спасибо за вашу помощь и предложения.

1 Ответ

0 голосов
/ 24 августа 2010

Отметьте этот вопрос - он был задан с той же целью. Имейте в виду, что совместимость сервисов является сложной задачей, и сравнение даже WSDL будет означать только то, что вы защищаетесь от синтаксических изменений. Нет никакого способа обнаружить семантические изменения в контракте / реализации сервиса - только правильный способ будет, если сервис предложит управление версиями, а затем предоставит метод, чтобы увидеть, совместим ли клиент с версией.

...