我想創建我的ASP.NET應用程序(ASP.NET 3.5,SQL 2008)中的一些參考數據的SQL緩存依賴項。我使用aspnet_regiis實用程序爲我的數據庫和一些表啓用了sql緩存。我在web.config中創建了所需的sqlcachedependency條目。我在application_start事件中添加了以下代碼緩存失效通知SqlCacheDependency
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看到該表已啓用緩存。我通過用文件依賴關係替換sqldependency來測試代碼的其餘部分。當我更改文件時,立即調用回調函數,所以我的錯誤很可能是設置sqlcachedependency。
由於