【问题标题】:How to better handle IIS app pool recycle in web services如何更好地处理 Web 服务中的 IIS 应用程序池回收
【发布时间】:2019-12-17 03:25:36
【问题描述】:

我在 IIS 中运行一个调用第三方供应商应用程序的 Web 服务。 Web 服务是从另一个第三方应用程序调用的,IIS 托管的 Web 服务会回复到该第三方应用程序。所以基本上我的应用程序-> IIS 应用程序-> 第三方应用程序-> IIS 应用程序-> 我的应用程序。

有时,第三方应用程序正在执行应用程序池回收,这意味着 IIS 应用程序正在等待回复。这会导致我的应用程序无限期地等待第三方应用程序,因为信号链现已中断。

IIS 是否会在回收期间强制终止其中运行的子进程?有没有办法让回收等到孩子完成?

【问题讨论】:

    标签: web iis


    【解决方案1】:

    你是否设置了禁用重叠循环

    如果将其设置为true,则 IIS 回收将终止旧进程实例并立即创建一个新实例。

    如果您将其设置为 false,那么 IIS 回收不会立即终止旧进程和请求。如果旧进程没有完成所有请求,您可以看到并排有两个实例。

    它也会创建一个新的应用程序池。不同之处在于 IIS 将离开旧进程,直到旧工作进程中的所有请求都完成或关闭时间超过 关闭时间限制。它的默认值为 90

    所以如果您的旧请求没有挂在旧工作进程中,并且需要超过 90 秒才能完成请求,请扩大 ShutDown Time Limit 的值。这将使您的旧进程有更多时间来处理当前请求。

    【讨论】:

    • 关闭时间限制确实有助于延长工作进程的寿命。但是正在发生的事情是 w3wp 进入挂起状态,而我的进程仍然无法完成其响应。此外,它最终创建了一个 vs 调试器进程,这使得我的进程看起来像是崩溃了。有没有办法不暂停工作进程?
    猜你喜欢
    • 2012-11-17
    • 2011-09-20
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 2023-03-03
    • 2012-09-25
    • 2011-03-10
    • 1970-01-01
    相关资源
    最近更新 更多