ASP.NET MVC 3缓存持续时间

时间:2012-06-18 11:42:46

标签: c# asp.net-mvc-3 caching

我在IIS上托管了一个ASP.NET MVC 3应用程序。这个应用程序使用MemoryCache处理内存中的一些数据,以帮助最大限度地减少对数据库的命中。我希望这些数据可以缓存一天。在我的代码中,我设置了以下内容:

List<MyObject> myItems = GetMyItems();
CacheItemPolicy cachePolicy = new CacheItemPolicy();
cachePolicy.AbsoluteExpiration = new DateTimeOffset(DateTime.Now.AddMinutes(1440));
Cache.Set("myCacheKey", myItems, cachePolicy);

虽然我的缓存似乎有效。但是,它似乎不会在预期的持续时间内保留在缓存中。我是否需要在web.config中进行设置,如果是,设置是什么?如果没有,是否需要设置IIS设置以启用更长的缓存持续时间?

1 个答案:

答案 0 :(得分:1)

问题很可能在于您的应用池在不使用后会回收。当应用程序池被回收时,您在内存中的所有内容都将丢失。

如果您需要更持久的缓存,则需要切换到未在进程中托管的内容。有许多商业和开源缓存服务;我建议去其中一个。

以下是一些缓存解决方案:

  1. SharedCache
  2. AppFabric
  3. NCache
  4. MemCached.NET
  5. 除其他外。