Я пытаюсь создать зависимость кэша SQL для некоторых справочных данных в моем приложении ASP.NET (ASP.NET 3.5, SQL 2008). Я включил кэширование sql для своей базы данных и пары таблиц с помощью утилиты aspnet_regiis. Я сделал требуемую запись зависимости sqlcache в файле web.config. Я добавил следующий код в событие 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);
Я перезагружаю данные из базы данных в callback-функции RefreshProducts.
По какой-то причине я не могу вызвать функцию обратного вызова при изменении данных в таблице. Я не получаю никаких ошибок времени выполнения, и я вижу из AspNet_SqlCacheQueryRegisteredTablesStoredProcedure, что таблица включена для кэширования. Я протестировал остальную часть кода, заменив sqldependency файловой зависимостью. Когда я изменил файл, функция обратного вызова была вызвана немедленно, поэтому моя ошибка, скорее всего, связана с настройкой зависимости от sqlcache.
Спасибо