2010-03-24 52 views
0

我有一个使用System.Web.Caching.Cache缓存来自大量Web服务的xml数据2小时的asp.net Web表单应用程序。停留在内存中的Asp.net缓存对象

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

每90分钟一个Microsoft Search Server命中一个特定的(蜘蛛)页面,该页面调用将对象放入缓存的代码。

我遇到的问题是,在一段时间内,应用程序的内存使用量呈指数增长。比方说,在一周内,应用程序池的内存使用量增长到1GB以上。

我正在使用IIS7,并且当前没有启用应用程序池回收。

回答

1

您的第一站应该是here。是一个相对较短的手册页。学习它,爱它,活下去。 ;-)

这就是说,试试这个:

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

附:怎么了webCacheObj?是否有你没有调用静态缓存的原因?

+0

webCacheObj是一个参数,它传递给一个单独的VB.NET dll类中的函数,该类将项目添加到缓存中。 (ByVal webCacheObj As Cache)。 – GordonB 2010-03-24 12:50:09

+0

因此它只是对普通缓存对象的引用。 – GordonB 2010-03-24 12:51:20

+0

添加Cache.NoSlidingExpiration修复它....不知道为什么它被设置为无....感谢很多。 – GordonB 2010-03-24 13:06:15