1

我有一个 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 中的 BindingElement 堆叠不正确或顺序错误。堆栈底部需要传输。BindingElements 的推荐顺序是:TransactionFlow、ReliableSession、Security、CompositeDuplex、OneWay、StreamSecurity、MessageEncoding、[...]

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

4

1 回答 1

1

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

于 2010-10-26T10:29:09.597 回答