Клиент WCF - почему я получаю эту ошибку? - PullRequest
1 голос
/ 13 июня 2011

Я пытаюсь использовать веб-сервис (https / ssl / basicHttpBinding). Я добавляю сервисную ссылку без проблем и вызываю ее асинхронно. Я передаю экземпляр клиента в CallBack. Я получаю эту ошибку при попытке получить результат от службы в CallBack:

Заголовок http://schemas.xmlsoap.org/ws/2004/08/addressing:Action для конечного получателя требуется, но отсутствует в сообщении.

var Result = client.BeginTheServiceOperation(header, CallBack, client);

private static void CallBack(IAsyncResult ar)
{
   var client = ar.AsyncState as MyServiceSoapClient;
   var result = client.EndTheServiceOperation(ar); // ERROR OCCURS HERE
   Console.WriteLine(result);
}

Чего мне не хватает?

Спасибо

Ответы [ 2 ]

1 голос
/ 15 июня 2011

Оказывается, что служба ожидала SOAP 1.1 и по умолчанию WCF использует SOAP 1.2. Мне нужно было создать новую пользовательскую привязку, передав эту конфигурацию, и все работало нормально. Это указало мне в правильном направлении: http://social.msdn.microsoft.com/Forums/en/wcf/thread/f3707303-4f35-4079-ac0b-eba4717cada8

1 голос
/ 13 июня 2011

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

Если требуется дополнительная помощь, также добавьте свой код конфигурации привязки / XML-файл конфигурации в исходное сообщение.

...