IIS重置和应用程序池recyle在影响缓存方面有什么区别

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.