Несколько операций с soapAction = "" в контракте на обслуживание WCF? - PullRequest
7 голосов
/ 09 апреля 2010

Мне нужно создать сервис, который будет «перезвонить» третьей стороной. В результате мне нужно соответствовать их WSDL.

В их WSDL есть все операции, определенные с soapAction="", поэтому мой сервис должен делать то же самое. К сожалению, я получаю сообщение об ошибке:

Операции А и Б есть то же действие (). Каждая операция должен иметь уникальное значение действия.

В веб-службах ASMX существовал режим, в котором soapAction не использовался бы, но вместо этого использовалось бы имя элемента запроса. Есть ли способ использовать WCF не только для отправки по элементу запроса, но и для отправки WSDL без soapAction?

1 Ответ

11 голосов
/ 13 апреля 2010

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

Я думаю, вам нужен хак, чтобы установить для soapAction значение "*", а затем написать пользовательский диспетчер .

Потенциальным побочным эффектом этого является плохой WSDL, если вам нужно раскрыть WSDL, вам придется сгенерировать / украсть его и затем использовать атрибут externalMetadataLocation

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