在控制台应用程序中使用wcf双工服务

时间:2010-10-26 10:01:05

标签: wcf wcf-binding duplex pollingduplexhttpbinding

我有一个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'不支持创建任何通道类型。这通常表示CustomBinding中的BindingElements堆叠不正确或顺序错误。堆栈底部需要传输。 BindingElements的推荐顺序是:TransactionFlow,ReliableSession,Security,CompositeDuplex,OneWay,StreamSecurity,MessageEncoding,[...]

你可以帮帮我吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

问题是PollingDuplexHttpBinding和相关的绑定元素仅在Silverlight API中可用。因此,当您启动新的.NET项目(在您的情况下是控制台应用程序)时,您不能使用相同的代码,因为.NET不包含PollingDuplexBindingElement