我已阅读MSDN 文章(链接),其中介绍了有关 IIS 进程回收的内容,结果证明
新进程在旧工作进程停止之前启动,然后将请求定向到新进程。
但是,当我阅读那篇文章的下一部分时,我看到了这一点:
多实例的发生:在多实例中,一个进程的两个或多个实例同时运行。根据应用程序池的配置方式,可以运行多个工作进程实例,每个实例都可能加载和运行相同的应用程序代码。重叠回收的发生是多实例化的一个示例,就像 Web 园一样,其中两个或多个进程为应用程序池提供服务,而不管回收设置如何。
如果您的应用程序无法在多实例环境中运行,您必须为一个应用程序池仅配置一个工作进程(这是默认值),如果正在使用应用程序池回收,则禁用重叠回收功能。
所以,我有点困惑。
一方面,当所有的 Web 请求立即永久地被定向到新的流程实例时,我可以接受。另一方面,本文建议我根本不要使用回收,以防我的应用程序引用上面的“无法在多实例环境中运行”。这意味着,在我看来,请求可能是作为一个或另一个流程实例的流程,这是我的应用程序逻辑所不允许的。
我想知道的是,如果有任何机会,任何机会,IIS 可能会走得如此糟糕并崩溃我的应用程序,还是我不应该担心它?