если вы меняете службу WCF, вам также нужно менять клиента?

#wcf

#wcf

Вопрос:

Если у меня есть веб-сервер и клиент, использующий этот веб-сервис, а затем я меняю местоположение службы или добавляю другой параметр, каков обычный способ изменить клиента? Вам обязательно нужно обновить клиент / помогал ли UDDI в такой ситуации?

Ответ №1:

Вы обязательно должны прочитать Управление версиями службы — в нем есть необходимая вам информация.

Но ответ на ваш вопрос: возможно.

Существует два типа изменений: прерывание и неразрывное. К сожалению, иногда не очевидно, что является нарушающим или не нарушающим изменение, поскольку это может зависеть от того, что делает клиент (и вы можете не знать, как используется ваша служба).

С точки зрения изменения местоположения службы это обычно критическое изменение. Однако, как вы упомянули, если клиент использует UDDI, он должен иметь возможность получить новое местоположение конечной точки, и это изменение не будет критическим изменением.

Если вы добавите другой параметр, это может быть критическим изменением (или это может и не быть). Если параметр является необязательным, и клиент использует слабое управление версиями (например, WCF, .asmx), то изменение не должно быть критическим. Но может случиться так, что клиент ожидает очень специфический формат или выполняет некоторую проверку схемы и т. Д., И необязательный параметр может вызвать сбой.

Ответ №2:

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

В случае WCF, если вы используете последнюю версию 4.0, она вводит новую реализацию протокола WS-Discovery, которая может помочь клиентам найти URL-адрес службы и правильную версию, которую они могут использовать. Используя этот подход, вы можете, например, развернуть новую версию по другому URL-адресу, и клиентские приложения смогут автоматически ее обнаружить.

С уважением, Пабло.

Ответ №3:

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

Если вы обновили свои ссылки, а не изменили местоположение: итак, загрузите свое клиентское решение, затем найдите свои ссылки (не ссылки на dll), а ссылки на веб / сервис, а затем щелкните правой кнопкой мыши и выберите «обновить веб-ссылки»

Если вы изменили местоположение, вы можете изменить конечную точку, если перейдете в свойства, но я бы просто удалил существующую и создал новую, используя новое местоположение.

Надеюсь, это поможет.

Для получения дополнительной информации ознакомьтесь http://msdn.microsoft.com/en-us/library/bb628652.aspx