我想在ASP.NET MVC Web应用程序中使用缓存来存储一些很少更新的列表数据。我插入这个数据到高速缓存中的UpdateCache()
方法是这样的:在ASP.NET中使用缓存
HttpContext.Current.Cache.Insert("MyApp-Products", products, null, DateTime.Now.AddYears(99), Cache.NoSlidingExpiration);
然后在我的模型,我找回它:
public static List<string> GetProducts()
{
var cachedProducts = HttpContext.Current.Cache["MyApp-Products"];
if (cachedProducts == null)
{
UpdateCache();
cachedProducts = HttpContext.Current.Cache["MyApp-Products"];
}
return ((List<string>)cachedProducts);
}
我第一次访问该页面预期,UpdateCache()
被调用。如果我刷新,数据来自缓存,我也不需要调用UpdateCache()
。然而,在大概15分钟后,我回到了应用程序,缓存的值也消失了。我的理解是,这是缓存每个应用程序,而不是会话,所以我本来期望它仍然在那里为自己或其他用户。
我存储缓存的方式有什么问题吗?或者是有什么我不理解关于ASP.NET中的Cache
如何在一个web应用程序?
什么是您在IIS中的空闲超时?仅仅是你的应用程序正在关闭?默认是20分钟。 – 2012-03-09 22:42:47
我对IIS不太熟悉。我可以在IIS管理器中找到这个设置吗? – Paul 2012-03-09 23:26:26
我找到了。我认为这是问题。谢谢! – Paul 2012-03-09 23:44:29