我正在尝试为我的 ASP.NET 应用程序(ASP.NET 3.5、SQL 2008)中的一些参考数据创建 SQL 缓存依赖项。我使用 aspnet_regiis 实用程序为我的数据库和几个表启用了 sql 缓存。我已经在 web.config 中创建了所需的 sqlcachedependency 条目。我在 application_start 事件中添加了以下代码
日期时间 dt = 日期时间。现在;
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 看到该表已启用缓存。我通过将 sqldependency 替换为文件依赖项来测试其余代码。当我更改文件时,回调函数被立即调用,所以我的错误很可能是设置了 sqlcachedependency。
谢谢