D.J*_*D.J 16 iis caching application-pool
我遇到了一个奇怪的问题:据我所知,可以通过回收应用程序池来清除缓存.
但是,在最近的项目中,缓存不会以这种方式清除.相反,我们必须重置IIS以清除缓存.
这些行为之间有什么区别,以及我所经历的差异可能是什么原因?
Pon*_*eng 12
当您回收AppPool时,会有一些重叠时间.您的不健康工作进程已标记为已回收,但会继续处理已收到的请求.(它不会处理新请求).一旦处理了所有现有请求,不健康的工作人员将被终止.
IIS重置后,将终止所有工作程序并清除内存中的缓存.新请求进入后,将创建新工作人员.
所以我认为对于AppPool回收和IIS重置都将清除缓存.据我所知,该缓存存储在Application域中.一旦不健康的工作进程终止,应销毁所有缓存项.
小智 10
请查看以下文章以获取详细说明:http: //fullsocrates.wordpress.com/2012/07/25/iisreset-vs-recycling-application-pools/
简而言之:
在IIS6中引入了回收AppPool功能.
IISRESET停止并启动所有与IIS相关的服务.它尝试正常关闭所有组件,即它发送关闭请求并等待服务关闭.它等待所有服务关闭,然后再次启动它们.
AppPool recycle首先调用新的工作进程,然后关闭旧的工作进程.这使停机时间小于IISRESET.