Answers:
这看起来像是模拟(或访问源代码...> sigh <)的情况之一,这将是唯一有把握地查看行为状态的方法。
默认情况下,应用程序池回收是重叠的,这意味着要关闭的工作进程一直保持运行状态,直到启动新的工作进程为止。新的工作进程启动后,新的请求将传递给它。旧的工作进程在完成对现有请求的处理后或在配置的超时后(以先到者为准)关闭。这种回收方式可确保为客户提供不间断的服务。但是,如果应用程序池中的应用程序一次不能运行多个自身实例,则可以禁用重叠旋转。
在我看来,按照定义,由于CPU消耗过多而终止工作进程将意味着将不允许完成待处理的请求(因为它们已经耗尽了CPU配额)。
谈到您的主要关注点:我没有看到任何让我相信不会自动启动新工作程序的东西。堆栈溢出链接中的语句确实使我感到疑问,IIS使用的算法是否实际上可以将回收与用于测量CPU配额耗尽的计时器的分辨率联系起来。我知道确定的最佳方法是编写一个浪费CPU的服务器端组件,将其部署到测试环境中,并查看其回收行为。一个简单的组件处于紧闭的循环中几秒钟,然后返回一个已知的字符串,再加上一个运行测试工具的客户端(带有并行的“ wget”进程池),可能就足够了。