【问题标题】:How to invoke WebApi only if IIS Website is running / not idle仅当 IIS 网站正在运行/非空闲时如何调用 WebApi
【发布时间】:2022-01-15 00:25:26
【问题描述】:

IIS 网站在一段时间内没有新请求时停止工作进程。

如果工作进程正在运行,我想使用 http 调用来调用 WebApi。 我不想叫醒睡着的兔子。

这将是我的 DevOps 发布管道的一部分。在我发布新版本并关闭自己的旧版本之前,我想通知在线用户。显然,如果应用处于休眠状态,则没有在线用户。

【问题讨论】:

  • IIS“空闲关机”功能并非旨在支持您自己想要的功能,但如果您真的想检查站点是否空闲,请查询其应用程序池并查看是否有任何正在运行的工作进程那里。 IIS 有多种 API 供您使用,例如 PowerShell 和 REST API。

标签: powershell asp.net-core iis asp.net-web-api


【解决方案1】:

您可以使用Get-IISAppPool 来检查应用程序池是否有任何工作进程:

if ((Get-IISAppPool DefaultAppPool).WorkerProcesses.Count -gt 0) {
    # do something
}

DefaultAppPool更改为您的应用程序池的真实名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-09
    • 1970-01-01
    • 2020-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多