首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >缓存失效通知SqlCacheDependency

缓存失效通知SqlCacheDependency
EN

Stack Overflow用户
提问于 2011-06-28 13:36:04
回答 1查看 1.2K关注 0票数 2

我正在尝试为我的ASP.NET应用程序(SQL3.5,SQL2008)中的一些引用数据创建ASP.NET缓存依赖项。我已经使用aspnet_regiis实用程序为我的数据库和几个表启用了sql缓存。我已经在web.config中创建了所需的required依赖项。我在application_start事件中添加了以下代码

DateTime dt = DateTime.Now;

代码语言:javascript
复制
            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);

我在回调函数RefreshProducts中从数据库重新加载数据。

由于某些原因,当我更改表中的数据时,我无法获得要调用的回调函数。我没有得到任何运行时错误,并且我可以从AspNet_SqlCacheQueryRegisteredTablesStoredProcedure中看到该表已启用缓存。我测试了其余的代码,用一个文件依赖项替换了replacing。当我更改文件时,回调函数立即被调用,所以我的错误很可能是在设置sqlcachedependency时。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2011-06-29 23:55:06

该错误存在于MS SQL存储过程dbo.AspNet_SqlCacheRegisterTableStoredProcedure和dbo.AspNet_SqlCacheUnRegisterTableStoredProcedure.中这些存储过程注册和注销用于SQL缓存监视的表,但仅适用于缺省模式中的表。我的表在不同的模式中,因此没有正确创建触发器。我修改了这两个存储过程来处理具有非模式的表,问题得到了解决

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6502009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档