IIS的DISABLE重叠循环的缺点和优点

时间:2014-10-15 17:46:05

标签: c# web-services iis

DISABLE重叠回收IIS的缺点和优点是什么?

默认情况下,选项Disable Overlapped Recyclingfalse,我需要将其更改为true,但我不知道这有什么缺点,我没有找到任何具体的文档说明关于这个缺点。

我想当有人处于对已发布的Web服务的请求中并且回收池时,会立即删除该调用并发出异常。我确定吗?

3 个答案:

答案 0 :(得分:1)

将此设置为true的缺点是,在回收应用程序池时,您的站点将会关闭。

优势恰恰相反:)

{* 3}}

解释了需要设置为true的唯一记录情况
  

当应用程序被回收时,会话状态可能会丢失。在重叠循环期间,多实例的发生也是可能的。

     

会话状态丢失:许多IIS应用程序依赖于存储状态的能力。 IIS 6.0可能会导致状态丢失,如果它自动关闭由于空闲处理而超时的工作进程,或者它在回收期间重新启动工作进程。

     

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

     

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

答案 1 :(得分:1)

禁用 IIS 的重叠回收的一个优点是,您可以避免在应用程序锁定文件时可能发生的潜在问题,应用程序的新实例将在原始应用程序仍在运行时尝试访问这些文件。

此问题即发生在使用 Lucene 索引的应用程序中。 更多相关信息:https://medium.com/@ShamreshKhan/turning-off-iis-app-pool-overlap-recycle-6d2591faa312

答案 2 :(得分:0)

似乎我找到了此标志的另一个用例。如果您被迫使用App_Code文件夹进行编译,则IIS可能无法正确回收您的应用程序,从而可能出现问题。

我们遇到一个问题,由于应用程序在应用程序域中加载了冲突的DLL,因此在基于属性的身份验证中身份转换无法正常工作。

App_Code compilation does not clean old assemblies