2011-06-13 3 views
1

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

Заголовок 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); 
} 

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

Благодаря

+0

Можете ли вы разместить код, в котором вы звоните в службу? – cadrell0

+0

Я обновил вопрос с помощью вызова BeginTheServiceOperation. Спасибо – KindaNewbie

+0

Пожалуйста, разместите весь метод, который вызывает функцию BeingTheServiceOperation. – cadrell0

ответ

1

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

+0

Вы можете отметить этот автоответ в качестве ответа. Как часто задает вопрос: «Это также прекрасно ... \ ... ответить на ваш собственный вопрос». –

1

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

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

Смежные вопросы