Ответ «Неправильно».
При вставке в кэш с абсолютным сроком действия, установленным на NoAbsoluteExpiration, и скользящим сроком действия, установленным на новый TimeSpan (0,0,0), обратный вызов не запускается немедленно.Я не стал ждать, когда он сработает, если вообще когда-нибудь - может быть, это будет 20 минут, а может, и никогда.
Поэтому изменил код так:
int cacheTimeout = 5; // Default 5 minute timeout
if(ConfigurationManager.AppSettings["CacheTimeout"] != null)
{
cacheTimeout = Convert.ToInt32(ConfigurationManager.AppSettings["CacheTimeout"].ToString());
}
TimeSpan expiration = cacheTimeout > 0 ? new TimeSpan(0,cacheTimeout,0) : new TimeSpan(0,0,1);
_cache.Insert(Key, CacheItem, null, System.Web.Caching.Cache.NoAbsoluteExpiration, expiration, CacheItemPriority.Default, OnUpdateCallback);
Таким образом, если мы do есть проблемы с кэшированием, мы можем обновить web.config, чтобы установить время кэширования равным 0 и срок его действия составляет 1 секунду.