C # Срок действия кэша не работает - PullRequest
4 голосов
/ 01 сентября 2011

Я добавляю к кешу следующее значение:

HttpContext.Cache.Insert(
    "ClientId", clientid, null,
    DateTime.UtcNow.AddYears(1), TimeSpan.Zero
);

Я не хочу, чтобы срок действия кеша истек, поэтому я установил дату через 1 год (DateTime.UtcNow.AddYears(1)), однако через 30 минуткэшированное значение больше не существует.

Ответы [ 3 ]

2 голосов
/ 01 сентября 2011

Из MSDN:

Если вы используете абсолютное истечение срока действия, параметр slideExpiration должен быть NoSlidingExpiration .

2 голосов
/ 01 сентября 2011

Вам необходимо использовать коллекцию Application , если вы хотите, чтобы элементы всегда оставались вне кэша.Кеш не гарантирует сохранение элемента в течение указанного вами времени, если есть нехватка памяти.Также, судя по 30 минутам, которые вы упомянули, существует вероятность того, что домен вашего приложения будет переработан, если на сайте не будет активности пользователя.

0 голосов
/ 01 сентября 2011

Я не знаю, почему ваш код не работает, но если вы не хотите, чтобы значение истекло, то вы можете использовать HttpContext.Current.Application.Add("ClientID", value)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...