我目前正在研究将通过WCF和WCF数据服务通过互联网与数据库进行通信的C#.NET桌面应用程序。应用程序中会有许多点需要在一段时间内刷新。最简单的解决方案是将这些区域放在计时器上并重新查询数据库。但是,有数千个客户端连接到服务层和数据库,这些操作对于服务器来说是非常昂贵的。良好的C#.NET解决方案来管理频繁的数据库轮询
我所考虑的是创建一个由客户端轮询的RSS源,并让客户知道何时需要更新这些特定区域。 RSS提要将由一个服务管理,该服务可以轮询数据库以进行更改,或者遍历由客户端发出的WCF请求排队的项目列表。
我也考虑过创建一些从客户端到服务器的直接和连续的连接,但我不确定从客户端打开哪些出站防火墙端口。我可能只能指望端口80/443。
所以我的问题是有什么解决方案有人成功实施解决这个问题?有人完成RSS?微软同步服务?客户端和服务器之间通过WCF通过一些保存端口进行双向通信?
任何想法,不胜感激。
+1,但我担心使用长轮询的数千客户端。一些环境优化对于开放连接可能是必需的。我从来没有这样做过WCF,所以我不能评论困难/积极因素。 – marr75 2010-12-07 16:23:42
+1你知道C#中使用WCF的任何长轮询实现吗?我已经使用了它,并没有拿出任何好的例子。 – BernicusMaximus 2010-12-07 19:56:37