WCF Web服务和客户端

WCF Web服务和客户端,wcf,Wcf,我有一些关于WCF服务的问题,希望您能提出意见。我已经阅读了很多关于如何将WCF服务应用于现实生活场景的材料,但是有很多相互矛盾的观点 我们有一个数据服务,它只不过是后端数据存储的接口。此数据服务有许多客户端,当数据服务持有的数据发生更改时,应通知这些客户端。这些客户端随后可以基于这些通知从数据服务请求数据。我们希望支持多达2000个客户端,这些客户端不是基于web的解决方案,而是一个大型分散网络 我关注的是: ·如果服务和客户端之间的连接丢失,客户端应该立即知道 ·服务应在短时间内将数据更改通

我有一些关于WCF服务的问题,希望您能提出意见。我已经阅读了很多关于如何将WCF服务应用于现实生活场景的材料,但是有很多相互矛盾的观点

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

我关注的是:

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

·服务应在短时间内将数据更改通知客户端。通知无法排队并在稍后接收

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

·如果服务和客户机之间的连接不能很好地扩展,那么我们不希望它保持永久连接

我们研究的方法包括:

·MSMQ

·双重绑定

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

·订阅/发布方法

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

任何帮助都将不胜感激

谢谢
Ian

这并不是您想要的,但是当涉及到基于事件的服务架构时,需要咨询的人或博客是


他的文章很好地概述了他处理这些问题的方法。尽管那篇文章没有明确讨论WCF,但他对WCF也很了解,因此我只能建议浏览他的博客,看看你是否觉得有什么有用。

这并不完全是你想要的,但当涉及到基于事件的服务架构时,需要咨询的人或博客是


他的文章很好地概述了他处理这些问题的方法。虽然那篇文章没有明确讨论WCF,但他对WCF也很了解,因此,我只能建议浏览他的博客,看看你是否觉得有什么有用。

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


无论您选择哪种技术,您的第二个顾虑都会带来规模问题。从长远来看,有状态连接模式将更难实现和扩展,因此,您可能需要检查这些关注点是完全的业务需求还是只是首选项。

实现第一个关注点的唯一方法是违反第四个关注点:要让客户端知道连接已断开,需要一个立即拒绝的持续轮询机制,或者保持一个打开的连接。WFC不适合打开连接,因此首先要考虑的是反对使用它


无论您选择哪种技术,您的第二个顾虑都会带来规模问题。从长远来看,有状态连接模式将更难实现和扩展,因此您可能需要检查这些关注点是完全的业务需求还是只是首选项。

+1总体而言,这是一个很好的答案,尽管我认为WCF不适合开放连接。的确,API模拟了断开连接的通信,但有些绑定甚至双工HTTP绑定都使用开放连接。+1总的来说是一个很好的答案,尽管我认为WCF不适合开放连接。的确,API建模了断开的通信,但是一些绑定甚至双工HTTP绑定都使用开放连接。