c# - SQL Server 将表更改通知 Web 服务器

标签 c# sql-server asp.net-mvc

有没有办法通知网络服务器(在我的例子中,网络服务器托管 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/

相关文章:

c# - 如何通过 MVC 网站在引用 DLL 中托管 WCF 服务?

c# - 是否可以将额外的自定义用户数据传递给自定义 ASP.NET 成员资格提供程序?

C# : how do you obtain a class' base class?

c# - .NET 数据读取器 : SqlException was unhandled by user code

c# - MVC 发布到另一个操作

c# - 非常冗长的存储过程状态

java - sql server中的master/worker没有锁

sql - SQL UPDATE 操作是否将数据读取到 "local memory"?

asp.net-mvc - Ninject 2.2 多重绑定(bind)

asp.net-mvc - html 元素属性内的 Razor 语法 (ASP MVC 3)