У меня есть базовое приложение MVC, которое использует NHibernate для OR / M и доступа к данным, SysCache2 для кэша второго уровня в NHibernate и SqlCacheDependency для базовой логики аннулирования кэша. Я считаю, что у меня все настроено правильно (я могу добавить детали, если требуется), и я вижу, что элементы кэшируются на стороне приложения.
Однако, если я обновляю элементы в таблице базы данных напрямую, обновление никогда не отправляется обратно в приложение через SqlCacheDependency и в SysCache2 в NHibernate. Таким образом, данные обновляются в базе данных и отличаются от того, что находится в кэше в приложении (в NHibernate с SysCache2).
Я вижу значение для столбца [changeId], соответствующее правильному приращению таблицы доменов в таблице [AspNet_SqlCacheTablesForChangeNotification], поэтому я вполне уверен, что SQL Service Broker настроен и настроен правильно. Если я профилирую базу данных с помощью SQL Profiler, я вижу вызовы установки для очередей, служб и sprocs, а также вызовы BEGIN CONVERSATION для мониторинга.
Не совсем уверен, что проверять дальше. У кого-нибудь была эта проблема раньше и каково было решение?