我遇到了一个奇怪的问题:据我所知,可以通过回收应用程序池来清除缓存。
然而,在最近的一个项目中,缓存并没有以这种方式清除。相反,我们必须重置 IIS 以清除缓存。
这些行为之间有什么区别?造成我所经历的差异的原因可能是什么?
当您回收AppPool时,会有一些重叠时间。您的不健康工作进程被标记为回收,但会继续处理已收到的请求。 (它不会处理新的请求)。一旦处理完所有现有请求,不健康的工作人员将被终止。
IIS 重置后,所有工作线程都会终止,内存中的缓存也会被清除。一旦有新的请求到来,就会创建新的工作人员。
所以我认为 AppPool 回收和 IIS 重置都会清除缓存。据我所知,该缓存存储在应用程序域中。一旦不健康的工作进程终止,所有缓存项都应该被销毁。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)