【问题标题】:WCF Web Services and ClientsWCF Web 服务和客户端
【发布时间】:2009-11-03 21:41:55
【问题描述】:

我有几个关于 WCF 服务的问题,希望 cmets 提供帮助。我已经阅读了很多关于如何将 WCF 服务应用到现实生活场景中的资料,但也有很多相互矛盾的意见。

我们有一个数据服务,它只是一个后端数据存储的接口。此数据服务有许多客户端,当数据服务持有的数据发生更改时,应通知这些客户端。这些客户端随后可以根据这些通知向数据服务请求数据。我们希望最多支持 2000 个客户端(不是基于 Web 的解决方案,但可能是一个大型分散网络)。

我的担忧:

· 如果服务和客户端之间的连接丢失,客户端应该立即知道。

· 服务应在短时间内通知客户端数据更改。通知无法排队并在很久以后才收到。

· 我们不希望在客户端进行大量配置工作以使其与服务一起使用。

· 如果不能很好地扩展,我们不希望服务和客户端之间建立永久连接。

我们研究过的方法:

·MSMQ

· 双面装订

· 事件轮询(包括 Silverlight 3 的新轮询绑定)

· 订阅/发布方法。

我们发现了所有这些方面的缺点,并且似乎没有一种最佳方式来做我们想做的事情。

任何帮助将不胜感激。

谢谢 伊恩

【问题讨论】:

    标签: wcf


    【解决方案1】:

    解决您的第一个问题的唯一方法是违反第四个问题:要让客户端知道连接已断开,需要一个持续的轮询机制(“立即”拒绝)或保持一个打开的连接。 WFC 不适合打开连接,因此首先要考虑的是反对使用它。

    无论您选择哪种技术,您的第二个担忧都会带来规模问题。从长远来看,有状态连接模式将更难以实施和扩展,因此您可能需要查看关注点是完整的业务需求还是只是偏好。

    【讨论】:

    • +1 总的来说,这是一个很好的答案,尽管我认为“WCF 不适合打开连接”。 API 模型确实断开了通信,但某些绑定(甚至是双工 HTTP 绑定)使用开放连接。
    【解决方案2】:

    这并不是您正在寻找的,但是当涉及到基于事件的服务架构时,要咨询的人(或博客)是 Udi Dahan

    他的文章Event-Driven Architecture: SOA Through the Looking Glass 很好地概述了他处理这些问题的方法。虽然那篇文章没有明确讨论 WCF,但他对 WCF 也很了解,所以我只能建议您浏览一下他的博客,看看有没有让您觉得有用的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-02
      • 1970-01-01
      • 2011-09-10
      • 2012-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多