0

我已阅读MSDN 文章(链接),其中介绍了有关 IIS 进程回收的内容,结果证明

新进程在旧工作进程停止之前启动,然后将请求定向到新进程。

但是,当我阅读那篇文章的下一部分时,我看到了这一点:

多实例的发生:在多实例中,一个进程的两个或多个实例同时运行。根据应用程序池的配置方式,可以运行多个工作进程实例,每个实例都可能加载和运行相同的应用程序代码。重叠回收的发生是多实例化的一个示例,就像 Web 园一样,其中两个或多个进程为应用程序池提供服务,而不管回收设置如何。

如果您的应用程序无法在多实例环境中运行,您必须为一个应用程序池仅配置一个工作进程(这是默认值),如果正在使用应用程序池回收,则禁用重叠回收功能。

所以,我有点困惑。

一方面,当所有的 Web 请求立即永久地被定向到新的流程实例时,我可以接受。另一方面,本文建议我根本不要使用回收,以防我的应用程序引用上面的“无法在多实例环境中运行”。这意味着,在我看来,请求可能是作为一个或另一个流程实例的流程,这是我的应用程序逻辑所不允许的。

我想知道的是,如果有任何机会,任何机会,IIS 可能会走得如此糟糕并崩溃我的应用程序,还是我不应该担心它?

4

1 回答 1

1

IIS 默认会定期回收;这是正常且健康的行为(释放系统资源)。IIS 只会暂时为同一个应用程序运行多个进程。在回收时,新流程将启动,而原始流程将仅运行到当前活动完成或超时期限到期。如果您担心会话状态,请查看状态服务器(SQL 是首选方法)。我有几篇关于这个问题的帖子,但请查看此链接

于 2012-11-02T14:57:05.243 回答