Asp.net 缓存无效通知SqlCacheDependency
我正在尝试为我的ASP.NET应用程序(ASP.NET 3.5,SQL 2008)中的一些参考数据创建SQL缓存依赖项。我已经使用aspnet_regiis实用程序为我的数据库和几个表启用了sql缓存。我在web.config中创建了必需的sqlcachedependency条目。我在应用程序启动事件中添加了以下代码 DateTime dt=DateTime.NowAsp.net 缓存无效通知SqlCacheDependency,asp.net,sqlcachedependency,Asp.net,Sqlcachedependency,我正在尝试为我的ASP.NET应用程序(ASP.NET 3.5,SQL 2008)中的一些参考数据创建SQL缓存依赖项。我已经使用aspnet_regiis实用程序为我的数据库和几个表启用了sql缓存。我在web.config中创建了必需的sqlcachedependency条目。我在应用程序启动事件中添加了以下代码 DateTime dt=DateTime.Now SqlCacheDependency dep1 = new SqlCacheDependency(data
SqlCacheDependency dep1 = new SqlCacheDependency(databaseName, "Products");
List<Product> productsList = new List<Product>();
CacheItemRemovedCallback productRefresh = new CacheItemRemovedCallback(RefreshProducts);
HttpRuntime.Cache.Insert("Products", productsList, depProducts, dt, Cache.NoSlidingExpiration, CacheItemPriority.NotRemovable, productRefresh);
SqlCacheDependency dep1=新的SqlCacheDependency(databaseName,“Products”);
列表产品列表=新列表();
CacheItemRemovedCallback productRefresh=新的CacheItemRemovedCallback(RefreshProducts);
HttpRuntime.Cache.Insert(“Products”,productsList,depProducts,dt,Cache.NoSlidingExpiration,CacheItemPriority.NotRemovable,productRefresh);
我在回调函数RefreshProducts中重新加载数据库中的数据
由于某些原因,我无法在更改表中的数据时调用回调函数。我没有得到任何运行时错误,并且可以从AspNet\u sqlcachequeryregisteredtablesstoredprocess中看到该表已启用缓存。我通过用文件依赖项替换sqldependency来测试代码的其余部分。当我更改文件时,回调函数立即被调用,因此我的错误很可能是设置sqlcachedependency
谢谢错误出现在MS SQL存储过程dbo.AspNet\u SQLCacheRegisterTableStoredProcess和dbo.AspNet\u SQLCacheUnregisterTableStoredProcess中。这些存储过程为SQL缓存监视注册和注销表,但仅适用于默认架构中的表。我的表位于不同的架构中,因此触发器没有正确创建。我修改了这两个存储过程来处理非模式的表,问题就解决了