【发布时间】:2012-06-15 14:29:13
【问题描述】:
我的 ASP.NET MVC 4 Web 应用程序正在向客户端显示经常更新的数据。 数据源自外部来源(安装在服务器上的应用程序)并由 SQL Server 2008 R2 处理。
目前的数据流非常传统:客户端从 ASP.NET 轮询,ASP.NET 从 SQL Server 轮询。
为了避免轮询(现在我需要在 Web 应用程序的用户之间进行实时交互),我正在更改推送方法,使用 signalR 向客户端广播数据。
这增加了用户体验的流畅性,也减少了客户端和 ASP.NET 服务器之间轮询的开销。
现在的问题是反转 SSRV 和 ASP.NET 之间的流程:我想以最有效的方式将数据从 SSRV 推送到 ASP.NET。
SSRV 正在运行昂贵的查询来导入一些外部数据 - 一旦数据处理完毕,它们也可以通过广播在 Internet 上共享。
我目前的穷人方法:向 Web 应用程序(在 localhost 上)发出 POST Http 请求以发送数据(为此我使用 CLR 函数)。
处理完数据后,我将它们打包到HttpWebRequest,将它们放入Service Broker 中排队以避免影响其他活动,然后我就完成了。
我已经注销了 SqlDependency,因为这会迫使我查询数据 - 这不是一个很大的优势(我会用 localhost HTTP 请求来换取在 SQL Server 上运行的查询)
同时我觉得应该有一个更简洁的方法来做到这一点。
有什么建议吗?
【问题讨论】:
标签: asp.net-mvc sql-server-2008 signalr server-push