2010-03-24 3 views
0

У меня есть приложение веб-форм asp.net, которое использует System.Web.Caching.Cache для кэширования xml-данных из нескольких веб-сервисов в течение 2 часов.Сохраненные в кэше объекты Asp.net

webCacheObj.Remove(dataCacheKey) 
    webCacheObj.Insert(dataCacheKey, dataToCache, Nothing, DateTime.Now.AddHours(2), Nothing) 

Каждые 90 минут сервер поиска Microsoft попадает на определенную страницу (паука), которая вызывает код для помещения объектов в кеш.

Проблема в том, что в течение определенного периода времени использование приложения в памяти растет экспоненциально. Допустим, что через неделю использование памяти в пуле приложений увеличивается до более 1 гб.

Я использую IIS7, и в настоящее время не включена утилизация пула приложений.

ответ

1

Ваша первая остановка должна быть here. Это относительно короткая справочная страница. Учите это, любите, живите. ;-)

Тем не менее, попробуйте следующее:

Cache.Insert(dataCacheKey, dataToCache, Nothing, DateTime.Now.AddHours(2), Cache.NoSlidingExpiration) 

P.S. Что происходит с webCacheObj? Есть ли причина, по которой вы не вызываете статический кеш?

+0

webCacheObj - это параметр, переданный функции в отдельный класс dll VB.NET, который добавляет элементы в кеш. (ByVal webCacheObj As Cache). – GordonB

+0

, так что это просто ссылка на обычный объект кеша. – GordonB

+0

Добавление Cache.NoSlidingExpiration исправил его .... Не уверен, почему он был настроен на ничего .... Большое спасибо. – GordonB