首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止ASP .NET页面必须轮询数据库以进行更改

防止ASP .NET页面必须轮询数据库以进行更改
EN

Stack Overflow用户
提问于 2011-11-21 20:32:53
回答 3查看 322关注 0票数 3

我有一个ASP .NET web服务,它利用来自客户端的长期连接。

  • 客户端连接并等待15分钟的响应。
  • 就在15分钟之前,使用OK进行响应。
  • 客户端重复此连接建立。

在15分钟内,Web服务检查SQL表中记录中字段值的更改。如果该值发生变化,则它将立即向使用ReadMessage的客户端发送响应。对数据库的检查/轮询每30秒进行一次。这有几个缺点:

  1. 它的规模不是很好。它可以很好地处理一两个客户端,但是当您以10,000个客户端连接结束时,这将是数据库上的大量轮询。
  2. 这会导致处理延迟,因为可能需要30秒才能通知客户端。

我想要的是找到一种方式,通知主动http客户端的Web服务,记录已经更新。

还应该注意到,到web服务的每个客户端连接在表中都有自己的特定记录。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-21 21:45:56

我认为SqlDependency是你要找的。查询通知允许应用程序在查询结果发生更改时收到通知。

票数 2
EN

Stack Overflow用户

发布于 2011-11-21 20:38:36

您考虑过在数据库中设置一些触发器吗?如果使用的是Server,则可以使用Server集成。

http://msdn.microsoft.com/en-us/library/ms254963%28v=VS.80%29.aspx

票数 2
EN

Stack Overflow用户

发布于 2011-11-21 20:40:02

你可以在桌子上放个扳机。免责声明:我试图远离触发器,因为编写一个错误很容易,而当错误发生时,很难进行调试。但是,我从来没有编写过CLR触发器,而且我认为这样做更安全,因为您对错误处理有更多的控制。

但是更好的做法是让更新表的任何过程开始,如果这是一个选项,那么通知您的But服务更改。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8218170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档