加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c#使用SQL依赖的长轮询与IIS不一致

发布时间:2020-12-15 21:39:21 所属栏目:百科 来源:网络整理
导读:客户的要求是,只要数据库中的特定表发生任何类型的更改,就能够在屏幕上看到刷新的数据. 我们在DB中有一个Job表,其内容显示在浏览器的GridView中.要求是在Jobs表中发生任何更新,删除或插入时刷新网格数据. 我们使用了SQL依赖实现这一目标的长轮询技术. SQL依
客户的要求是,只要数据库中的特定表发生任何类型的更改,就能够在屏幕上看到刷新的数据.

我们在DB中有一个Job表,其内容显示在浏览器的GridView中.要求是在Jobs表中发生任何更新,删除或插入时刷新网格数据.

我们使用了SQL依赖&实现这一目标的长轮询技术. SQL依赖关系将通知asp.net数据库中的任何更改,长轮询将保持gridview异步更新.

我们在IIS 7.0中部署了它,并注意到不一致的行为,即gridview在大多数情况下都会刷新,比如说90-95%,但有时候虽然数据库表中的数据发生了变化,但刷新并没有发生.

有人遇到过这个问题吗? IIS中是否需要任何特定的配置?我确实在几个地方读过IIS没有为彗星编程进行扩展.上述场景发生在只有一个用户的测试环境中.任何帮助将不胜感激.提前致谢.

编辑:问题似乎也出现在ASP.Net开发服务器中,而不是与IIS隔离.记录消息后,我们发现SQLDependency是OnChange事件不会一致触发的中断.

编辑2:当我运行查询select * from sys.dm_qn_subscriptions时,我得到几行同一通知订阅,即重复订阅.只有id列不同.这可能是个原因吗?如果是,为什么我会得到重复的订阅行?如何从ASP.NET中删除订阅?

解决方法

我相信你需要在你的项目中实现COMET-or-Reverse- AJAX,这是一个很好的例子

http://www.codeproject.com/Articles/34562/COMET-or-Reverse-AJAX-based-Grid-Control-for-ASP-N

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读