Вы писали:
То, что нужно, чтобы элемент кэшировался вечно
Но, как вы заметите позже, это на самом деле скользящее истечение, поэтому элементы в конечном итоге удаляютсяиз кэша, если к ним нет доступа в течение определенного периода времени.
К сожалению, CachingCallHandler
использует только скользящий срок действия:
Вот что он делает в коде:
private void AddToCache(string key, object value)
{
object[] cacheValue = new object[] { value };
HttpRuntime.Cache.Insert(
key,
cacheValue,
null, // No Cache Dependencies
Cache.NoAbsoluteExpiration,
expirationTime, // Sliding expiration (default 5 minutes)
CacheItemPriority.Normal,
null // No CacheItemRemovedCallback
);
}
Что касается смысла этого подхода, то он кажется немного ограниченным.Тем не менее, он учитывает сценарий, в котором у вас есть довольно статичные данные, которые не нужно обновлять по требованию.
Обратите внимание, что CachingCallHandler был удален из Enterprise Library 5.0 из-за «неразрешимых уязвимостей безопасности»так что вы можете не захотеть использовать эту функцию.