Преобразование ASMX в веб-службу WCF - PullRequest
12 голосов
/ 23 июня 2009

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

Ответы [ 2 ]

12 голосов
/ 23 июня 2009

Вариант 1:

  1. Используя текущий WSDL ASMX, сгенерируйте клиента с помощью svcutil.exe
  2. Получение созданного интерфейса и создание службы WCF на основе этого интерфейса

    Вывод: одна новая конечная точка WCF, настроенная с basicHttpBinding. Клиенты должны обновить URL-адрес, по которому они отправляют сообщения.

Вариант 2:

  1. Измените код ASMX. Переместите всю логику в отдельную DLL.
  2. Создайте службу WCF и используйте логику в переработанной DLL.

    Вывод: 2 конечные точки, одна для ASMX и другая для WCF

8 голосов
/ 23 июня 2009

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

Существует также атрибут AspNetCompatibilityRequirements, чтобы обойти потенциальную проблему совместимости - см. Документацию MSDN .

Марк

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