Добавление методов к веб-сервису: старые клиенты должны обновить веб-ссылки?

ProductA использует наш единственный веб-сервис, который является отдельным развертыванием от ProductA. Мы развертываем обоих на производстве.

Позже, пишем мы ProductB. Во время того усилия мы добавляем новый метод к нашему единственному веб-сервису. Тот новый метод не был в WSDL когда поставленный ProductA. Мы не вносим изменений в ProductA в разработке.

Когда мы развертываем ProductB на производстве, мы также развертываем (на производстве) новую версию нашего единственного веб-сервиса (к тому же URL конечной точки, где ProductA ожидает находить его). Мы не повторно развертываем ProductA на производстве.

WSDL для нашего единственного веб-сервиса изменился в производстве, но подписи методов, используемых ProductA, не изменились. Они находятся все еще в WSDL.

ProductA будет иметь какие-либо проблемы из-за нашего обновления нашего единственного веб-сервиса таким образом?

Необходимо ли обновить клиент веб-сервиса, если бы веб-сервис изменился таким способом, который оставил методы исходного клиента без изменений?

18
задан Kara 23 January 2014 в 16:29
поделиться

3 ответа

Нет. Пока вы оставили только методы, которые использует Продукт A, вам не нужно обновлять копию WebReference Продукта A.

16
ответ дан 30 November 2019 в 07:33
поделиться

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

  • Удаление методов;
  • Изменение подписей методов;
  • Изменение привязки/поведения (например, для использования шифрования).

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

Помните, конечно, что клиент не сможет использовать эти новые методы или свойства, пока они не будут перестроены. Но это не нарушит существующую функциональность.

14
ответ дан 30 November 2019 в 07:33
поделиться

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

Хотя мы склонны думать о добавлении метода в службу как о чем-то, что важно только на сервере, имейте в виду, что когда ссылка на службу обновляется, это фактически меняет код клиента.

Некоторые организации верят в необходимость тестирования клиентского кода при изменении клиентского кода.

1
ответ дан 30 November 2019 в 07:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: