IISreset和应用程序池回收在影响缓存方面有啥区别
Posted
技术标签:
【中文标题】IISreset和应用程序池回收在影响缓存方面有啥区别【英文标题】:What is the difference between IIS reset and application pool recyle in affecting of cacheIISreset和应用程序池回收在影响缓存方面有什么区别 【发布时间】:2012-01-04 10:41:09 【问题描述】:我遇到了一个奇怪的问题:据我所知,可以通过回收应用程序池来清除缓存。
但是,在最近的一个项目中,缓存并没有以这种方式清除。相反,我们不得不重置 IIS 以清除缓存。
这些操作之间有什么区别,我所经历的区别可能是什么原因?
【问题讨论】:
我发现这个回复很有用:serverfault.com/a/474940/257995。与此处的其他答案类似,但它还包括刷新选项。 【参考方案1】:当您回收 AppPool 时,会有一些重叠时间。您的不健康工作进程被标记为回收,但继续处理它已经收到的请求。 (它不会处理新请求)。处理完所有现有请求后,不健康的工作人员将被终止。
重置 IIS 后,所有工作人员都将终止,内存中的缓存将被清除。一旦有新的请求进来,就会创建新的工作人员。
所以我认为对于 AppPool 回收和 IIS 重置都会清除缓存。据我所知,该缓存存储在应用程序域中。一旦不健康的工作进程终止,所有缓存项都应该被销毁。
【讨论】:
Dose 意思是如果我们等待足够长的时间并在稍后的时间点击页面,缓存就会消失并通过回收应用程序池来清除? 不工作,我回收一个池并检查新池,并且有超过 13 秒的未决请求。 IIS 7.5 Windows 服务器【参考方案2】:详细解释请查看以下文章: http://fullsocrates.wordpress.com/2012/07/25/iisreset-vs-recycling-application-pools/
简而言之:
在 IIS6 中引入了回收 AppPool 功能。
IISRESET 停止并启动所有 IIS 相关服务。它尝试正常关闭所有组件,即它发送关闭请求并等待服务关闭。它等待所有服务关闭,然后重新启动它们。
AppPool 回收首先调用一个新的工作进程,然后关闭旧的工作进程。这使得停机时间小于 IISRESET。
【讨论】:
以上是关于IISreset和应用程序池回收在影响缓存方面有啥区别的主要内容,如果未能解决你的问题,请参考以下文章