Использование дуплексной службы wcf в консольном приложении
У меня есть дуплексный сервис 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>
Это дает мне ошибку:
Связывание "CustomBinding" не поддерживает создание каких-либо типов каналов. Это часто указывает на то, что BindingElements в CustomBinding были сложены неправильно или в неправильном порядке. Транспорт требуется в нижней части стека. Рекомендуемый порядок для BindingElements: TransactionFlow, ReliableSession, Security, CompositeDuplex, OneWay, StreamSecurity, MessageEncoding, [...]
Не могли бы вы помочь мне? Заранее спасибо.
1 ответ
Проблема в том, что PollingDuplexHttpBinding и связанный элемент привязки доступны только в Silverlight API. Поэтому, когда вы запускаете новый проект.NET (консольное приложение в вашем случае), вы не можете использовать тот же код, потому что.NET не содержит PollingDuplexBindingElement