IIS进程回收

时间:2012-11-02 08:17:00

标签: c# asp.net-mvc iis application-pool recycle

我已经阅读了MSDN article (link),其中介绍了有关IIS进程回收的一些内容,结果证明

  

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

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

  

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

     

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

所以,我有点困惑。

一方面,当所有网络请求立即永久地被引导到新流程实例时,我感觉很好。另一方面,如果我的应用程序引用上面的“无法在多实例环境中运行”,本文建议我不要使用回收。在我看来,这意味着请求可能是一个或另一个流程实例的流程,我的应用程序逻辑不允许这样做。

我想知道的是,如果有任何机会,任何机会,IIS会如此糟糕地崩溃我的应用程序,或者我不应该担心它?

1 个答案:

答案 0 :(得分:1)

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