0

我想允许网站上的用户对报告进行排队(在 sql 表中输入请求)。该队列将由 Windows 应用程序处理,该应用程序将从 sql server 读取队列、运行报告并更新记录中的 reportcomplete 字段。我需要能够发布一条类似于“生成报告”的消息,然后在报告可用时提醒用户。我玩弄了 SQLDependency,我可以触发 onchange 事件,但我当然无法回到浏览器中已经加载的页面。关于如何实现这一点几乎没有想法,我认为 SQLDependency 可能是错误的途径。有任何想法吗?

4

1 回答 1

0

HTTP 无法连接回客户端。唯一的解决方案是让客户端轮询,通常通过长尾(例如Comet Ajax)请求。因此原始页面请求返回,脚本在结果页面上启动并发布一个后台请求,该请求进入 ASP.Net 代码并阻止事件。SQLDependency 通知事件,因此长尾请求重新激活并将响应返回给代理,代理现在完成 Ajax 调用并可以更新页面。至少这是 10000 英尺的视野。这将起作用,但不会扩展(主要是因为 Ajax 请求占用的资源,阻塞的 ASP.Net 处理线程)。存在更多可扩展的方法,但要复杂得多。

于 2011-05-12T22:06:43.637 回答