Pergunta

Eu tenho um serviço duplex wcf com o trabalho bem no Silverlight. Mas o mesmo serviço que quero consumir no aplicativo Windows Console. Meu código da seguinte forma:

   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 está "vazio":

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

Isso me dá um erro:

A ligação 'CustomBinding' não suporta a criação de nenhum tipo de canal. Isso geralmente indica que os elementos de ligação em uma encomenda foram empilhados incorretamente ou na ordem errada. Um transporte é necessário na parte inferior da pilha. A ordem recomendada para o BindingElements é: transactionflow, reliableSession, segurança, compositeduplex, Oneway, StreamSecurity, MessageEncoding, [...

Você poderia me ajudar? Desde já, obrigado.

Foi útil?

Solução

O problema é que PollingDuplexHttpBinding e elemento de ligação relacionados estão disponíveis apenas na API Silverlight. Portanto, quando você inicia o novo projeto .NET (aplicativo de console no seu caso), você não pode usar o mesmo código, porque .NET não contém pollingDuplexBindingElement

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top