客户的要求是,只要数据库中的特定表发生任何类型的更改,就能够在屏幕上看到刷新的数据.
我们在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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。