Как WCF решает, какую операцию отправлять? - PullRequest
0 голосов
/ 11 марта 2011

Я создаю приложение WCF SOAP. Файл WSDL имеет множество операций, многие из которых имеют одинаковый тип аргумента. Файл WSDL определяет все атрибуты soapAction как «». Когда я пытаюсь запустить такой сервис, WCF выдает исключение о том, что soapActions должен быть уникальным.

После некоторого поиска в Google я еще больше озадачен, чем раньше Я использовал SOAPUI для создания фиктивного сервиса с двумя операциями, которые принимают один и тот же тип ввода, и без определения soapActions он всегда выбирает одну и ту же операцию. Когда действия определены, все работает нормально.

Мои вопросы:

  • Можете ли вы создать службу WCF SOAP без уникальных soapActions (фактически оставляя soapActions "''", как определено в исходном WSDL)?
  • Как сервис может выбрать правильную операцию без определения soapAction?

Отредактировано: Я не контролирую WSDL. Я использую инструмент WSCF.Blue для создания заглушки сервиса из файла WSDL. Я мог бы изменить WSDL, но я хочу посмотреть, есть ли возможность оставить все как есть.

1 Ответ

2 голосов
/ 11 марта 2011

Из вашего вопроса не очень ясно, но я полагаю, что вы создаете сервис на основе некоторого определенного WSDL, не так ли?WCF по умолчанию использует действие SOAP, потому что это обязательная часть WS-I Basic Profile 1.1, предлагаемая службами WCF с BasicHttpBinding.WSDL с пустыми действиями SOAP используются, когда действие определено корневым элементом тела.

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

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