Использование дуплексной службы wcf в консольном приложении - PullRequest
1 голос
/ 26 октября 2010

У меня есть дуплексный сервис wcf с прекрасной работой в silverlight.но тот же сервис я хочу использовать в консольном приложении Windows.Мой код выглядит следующим образом:

   var context = new InstanceContext(this);
   var address = new EndpointAddress("http://localhost:31881/PubSubService.svc");
   var binding = new CustomBinding(
                 new PollingDuplexBindingElement(),
                 new BinaryMessageEncodingBindingElement(),
                 new HttpTransportBindingElement());

    var client = new PubSubClient(context, binding, address);
    client.Publish("topic", "content");

App.config "пусто":

   <?xml version="1.0" encoding="utf-8" ?>
     <configuration>
   </configuration>

Это дает мне ошибку:

Binding 'CustomBinding' неподдержка создания любых типов каналов.Это часто указывает на то, что BindingElements в CustomBinding были сложены неправильно или в неправильном порядке.Транспорт требуется в нижней части стека.Рекомендуемый порядок для BindingElements: TransactionFlow, ReliableSession, Security, CompositeDuplex, OneWay, StreamSecurity, MessageEncoding, [...]

Не могли бы вы мне помочь?Заранее спасибо.

1 Ответ

1 голос
/ 26 октября 2010

Проблема в том, что PollingDuplexHttpBinding и связанный элемент привязки доступны только в Silverlight API. Поэтому, когда вы запускаете новый проект .NET (консольное приложение в вашем случае), вы не можете использовать тот же код, потому что .NET не содержит PollingDuplexBindingElement

...