【问题标题】:What is the advantage of WSDualHttpBinding in WCF?WCF中WSDualHttpBinding的优势是什么?
【发布时间】:2011-02-12 12:05:05
【问题描述】:

到目前为止,除了您可以从双通道获得的即时通知之外,没有人能真正提供使用双通道而不是客户端轮询系统的任何好处。其他每一点都说如果您不需要立即通知双重绑定提供负值 - 有人不同意这一点吗?

与调用 WCF 服务的客户端轮询相比,将 WSDualHttpBinding 与 IIS 托管服务一起使用有多大好处?假设在后者中服务缓存了相关数据?

此场景适用于通知类型的服务,当事件发生时,服务需要通知客户端。

具体来说,与轮询相比,WSDualHttpBinding 有哪些优势? 即:更少的网络流量,更快的设计,更容易维护,更多的控制???

据我了解,WSDualHttpBinding 的可扩展性不如客户端轮询,那么为什么要使用它呢?编辑:正如 Matt 提供的,时间紧迫可能是双面绑定的原因之一。

这是我目前所拥有的:

WSDualHttpBinding

adv:无需等待轮询计时器即可获得即时响应

dis:比 WsHttpBinding 的可扩展性差

dis:对防火墙不太友好

dis:比 WSHttpBinding 慢

我会根据 cmets 补充,如果我说的有什么不正确的地方请告诉我。

感谢您的输入:-)

【问题讨论】:

    标签: .net wcf wsdualhttpbinding


    【解决方案1】:

    创建WSDualHttpBinding 是有原因的。 WCF 提供对服务“回调”的支持——服务执行完成时通知客户端的方法。不幸的是,HTTP - 作为单向通道 - 不允许回调(相比之下,TCPBinding 允许它,因为 TCP 是全双工通道)。 为了绕过 HTTP 的单向特性,发明了 DualHttpBinding——两个同时打开的 HTTP 连接——一个用于服务请求——一个用于回调。 这不是可扩展性的问题,而是需要的问题。如果您想使用回调(并且回调非常好,特别是如果您的服务将成为一项耗时(长时间运行)的服务),WSDualHttpBinding 可能是您的最佳选择。由于已经指出的原因,轮询可能是最糟糕的——每次轮询都会占用网络资源等。

    【讨论】:

      【解决方案2】:

      this SO thread 中有大量信息。基本上,轮询的缺点是您的客户端仅与上次轮询一样是最新的,因此对于时间关键信息,您需要增加轮询频率。每次轮询都会占用网络资源并在客户端上产生开销。长轮询和 WSDualHttpBinding 等解决方案是解决该问题的方法。 WSDualHttpBinding 的缺点是客户端必须向服务器公开端点(这会在防火墙环境中产生问题)。 BOSH/XMPP 或其他形式的长轮询是另一种选择。

      【讨论】:

      • 谢谢,这似乎是 wshttpbinding 的一大优势 :-)
      猜你喜欢
      • 2014-08-03
      • 2015-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-16
      • 1970-01-01
      • 2011-03-25
      • 2017-06-21
      相关资源
      最近更新 更多