有没有办法通知网络服务器(在我的例子中,网络服务器托管 C# 中的 MVC2 网络应用程序)数据库发生了变化?目的是保持 web 服务器缓存与数据库同步。
ASP.NET 中的轮询结构允许这样做,但我更喜欢推送系统。我还假设数据库可以由 Web 服务器本身以外的元素操作。
我对 SQL Server/ASP MVC 的有限知识表明,一种方法是通过创建一个表 TRIGGER,它几乎命中一个将强制更新的 url。
最佳答案
SqlDependency
是要走的路,如果变化率适中。对于高变化率,您最好轮询变化。要了解 SqlDependency 的工作原理,请阅读 The Mysterious Notification . ASP 已经内置了对 SqlDependency 的支持,即 SqlCacheDependency
.还有LinqToCache如果可能,它会向任意 LINQ 查询添加 SqlDependency 功能。
触发器绝对是一个大禁忌。你不能让数据库事务等待某个 URL 响应,你的性能将崩溃到几乎没有。更不用说可用性问题(如果 URL 没有响应,无论出于何种原因,更新都会失败)。
关于c# - SQL Server 将表更改通知 Web 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7641352/