我正在尝试为我的ASP.NET应用程序(SQL3.5,SQL2008)中的一些引用数据创建ASP.NET缓存依赖项。我已经使用aspnet_regiis实用程序为我的数据库和几个表启用了sql缓存。我已经在web.config中创建了所需的required依赖项。我在application_start事件中添加了以下代码
DateTime dt = DateTime.Now;
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时。
谢谢
发布于 2011-06-29 23:55:06
该错误存在于MS SQL存储过程dbo.AspNet_SqlCacheRegisterTableStoredProcedure和dbo.AspNet_SqlCacheUnRegisterTableStoredProcedure.中这些存储过程注册和注销用于SQL缓存监视的表,但仅适用于缺省模式中的表。我的表在不同的模式中,因此没有正确创建触发器。我修改了这两个存储过程来处理具有非模式的表,问题得到了解决
https://stackoverflow.com/questions/6502009
复制相似问题