回收应用程序池是否清除请求队列?

我是一个IIS的nube。 我一直在阅读关于回收应用程序池以释放由可能泄漏的有问题的应用程序引起的内存的好处。 我明白,通过回收应用程序池,我本质上重新启动应用程序,而无需重新启动服务器。 我也明白,通过回收应用程序池,我正在清理应用程序caching和会话。

我的问题是,当我回收configuration为只有一个工作进程的应用程序池时,是否清除了请求队列,或者是否在新工作人员启动时满足排队的请求?

当您在IIS 7和更高版本上回收应用程序池(不确定早期版本)时,默认情况下,IIS将启动一个新的工作进程来处理新的请求, 然后终止现有的工作进程。 单个请求在任何时候都不应该失败,如果有任何请求排队,那么它们将被新的工作进程正常处理。

另外,您应该安排在非高峰时间回收任何应用程序池,因为您已经意识到它将清除任何活动的会话,并且如果应用程序依赖于会话存储将会破坏用户体验。

最好的做法是从源头上修复应用程序内存泄漏,但是我意识到这并不总是实用的。 我也会testing,以确保你事实上有一个问题摆在首位; 如果应用程序确实有泄漏testing并确保首先遇到问题,则不要只安排定期应用程序池回收。