0

我有一个 ASP.NET MVC 4 应用程序,它在带有 IIS 8.5 机器的 Windows 2012 R2 上运行。有一个奇怪的行为,我无法弄清楚。缓存似乎正在清除自己。通过缓存,我的意思是MemoryCache.Default,HttpContext.Current.CacheOutputCache。我在谷歌上搜索了几个小时,似乎没有任何问题。你能列出清除缓存的原因吗?我的意思是有一个清单可以用来测试服务器吗?提前致谢。

4

1 回答 1

1

这些缓存保存在内存中,因此是易失的。它们针对 IIS 为处理这些请求而生成的 W3wp 进程。

一段时间不活动后,IIS 关闭进程,因此这些缓存将被清除。

IIS 还会关闭进程(回收应用程序池)

  • 默认情况下 1746 分钟后 (IIRC)
  • 线程使用的内存达到设定的阈值后
  • 缓存也被线程隔离,所以如果你有一个网络农场/网络花园,这些缓存不会共享,再次 IIRC

如果您需要更长时间地保留这些项目,那么您将需要考虑将对象缓存在持久存储区域中,例如数据库或应用程序状态托管服务器。

于 2015-01-25T15:00:05.190 回答