日期:2014-05-18  浏览次数:20491 次

内存不足,cache里面缓存的对象会被强制释放..... 怎么才能不让其强制释放?
最近做了个网站。。 我的机器是512M的内存。在用cache的时候除了点问题。。这里想问问 Cache.NoAbsoluteExpiration的作用,不是永不过期吗?怎么还是被gc回收。。。 哪位大哥能说一下原理。顺便说一下如何才能不被回收?感谢

建立缓存:
C# code

context.Cache.Add("test1f", "testdata", null, Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(20), System.Web.Caching.CacheItemPriority.Normal, null);



当响应客户端的时候读取缓存,读出来居然是空值。。
C# code

string test = string.Format("{0}", context.Cache["test1f"]); 




这期间我由于启动了很多东西,内存达到了1G。。我确定第一步缓存是加入进去了。。 我不断的重复上面的操作,发现有时候能读出来,有时候不能。。 把东西都关掉,有了足够的内存后再重新测试,就能把缓存读出来。。而且很顺利。。

------解决方案--------------------
UP
------解决方案--------------------
加内存
------解决方案--------------------
用硬盘顶 有意义吗?
释放才是正确的。