Понимание HttpContext.Current.Cache

Я вносил некоторые изменения в сайт и заметил, что когда я делаю изменения в базе данных, т.е. добавьте новое значение человека, имя человека не отображается в раскрывающемся списке.

Если я несколько раз сбрасываю пул приложений, имя, наконец, появляется для меня. Хотя не всегда, кажется, для других.

Кажется, что он сильно контролируется кешем, и я обнаружил следующее:

HttpContext.Current.Cache.Insert("PersohnList", d, Nothing, 
       DateTime.MaxValue, New System.TimeSpan(0, 30, 0), 
       Caching.CacheItemPriority.High, Nothing)

Я заметил несколько ценностей, представляющих интерес,

a)  DateTime.MaxValue  
b)  New System.TimeSpan(0, 30, 0)

Срок действия кэша истечет через 30 минут и будет добавлено имя нового человека, или срок его действия не истечет из-за DateTime.MaxValue.

Есть идеи?

2 ответа

Решение

Я не уверен, что победит. Похоже, что этот код устанавливает скользящие и абсолютные. Я бы предположил, что последний выиграет в этом, но в документации MSDN говорится, что вы должны использовать только один или другой. При использовании slideExpiration следует установить для параметра absoluteExpiration значение NoAbsoluteExpiration, а при использовании absoluteExpiration для параметра slideExpiration - значение NoSlidingExpiration.

На вашем месте я бы просто сделал недействительным кеш при обновлении значения (HttpContext.Current.Cache.Remove("PersohnList") и перезагрузите его снова.

+1 для раздвижного окна. Каждый раз, когда другой пользователь касается этого ключа, "PersohnList", срок действия кэша увеличивается еще на 30 минут. Кроме того, проверьте System.Runtime.Caching как более современную альтернативу.

От http://msdn.microsoft.com/en-us/library/system.runtime.caching%28v=vs.110%29.aspx

"Пространство имен System.Runtime.Caching содержит типы, которые позволяют реализовывать кэширование в приложениях NET Framework.

Классы в этом пространстве имен предоставляют возможность использовать такие средства кэширования, как в ASP.NET, но без зависимости от сборки System.Web."

Другие вопросы по тегам