.NET Caching - срок действия кеша очень рано

Я пытаюсь использовать MemoryCache в .Net 4.5 для хранения объекта в течение 1 месяца (абсолютный срок действия - 1 месяц с момента создания кеша).

Проблема. Кажется, что срок действия кеша истекает в течение дня, а иногда даже в течение нескольких часов.

Фрагмент кода

// Setting the cache with absolute expiration time of 1 month:
string objName = "myObj";
MemoryCache memCache = MemoryCache.Default;
memCache.Add(tokenID, myObj, DateTimeOffset.UtcNow.AddMonths(1));

// Accessing the cache later
MemoryCache getCache = MemoryCache.Default;
getCache.Get(tokenID);

Вопросы

  1. Правильно ли я настраиваю кеш? Я не видел примеров, использующих AddMonths (), но есть много, которые используют AddDays () - должно ли это иметь значение?
  2. Есть ли максимальное количество времени, которое я мог бы использовать для абсолютного истечения срока действия? (Я не встречал примеров, которые устанавливали бы кеширование более чем на 30 дней, не используя бесконечное время истечения.)
  3. Что еще могло привести к такому быстрому истечению срока действия кеша?

Большое спасибо!


person Ekta    schedule 12.06.2017    source источник
comment
Есть ли у веб-сервера параметр отключения сайта в режиме ожидания и есть ли постоянный трафик, чтобы этого не произошло?   -  person Sami Kuhmonen    schedule 12.06.2017
comment
@SamiKuhmonen - в настройках пула приложений моего сайта время простоя = 5 минут и ограничение времени выключения = 90 секунд. Вы говорите о любом из них?   -  person Ekta    schedule 12.06.2017
comment
Да, именно так. Это означает, что если в течение пяти минут на ваш сайт нет запросов, рабочие отключаются, что также удаляет все из кеша памяти. Скорее всего, это вызывает проблемы.   -  person Sami Kuhmonen    schedule 12.06.2017
comment
@SamiKuhmonen - Ах! Это должно быть так. Большое спасибо!   -  person Ekta    schedule 12.06.2017


Ответы (1)


Проверьте параметр IIS AppPool, который вы используете для своего веб-приложения. В разделе Дополнительные настройки есть настройка Тайм-аут простоя (в минутах). Если ваш сайт не используется дольше этого периода, рабочий процесс будет остановлен.

person Sebastian.S    schedule 12.06.2017