我在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设置以启用更长的缓存持续时间?
答案 0 :(得分:1)
问题很可能在于您的应用池在不使用后会回收。当应用程序池被回收时,您在内存中的所有内容都将丢失。
如果您需要更持久的缓存,则需要切换到未在进程中托管的内容。有许多商业和开源缓存服务;我建议去其中一个。
以下是一些缓存解决方案:
除其他外。