【问题标题】:Wake-up the WebHost when using IHostedService使用 IHostedService 时唤醒 WebHost
【发布时间】:2022-06-16 13:54:41
【问题描述】:

引用this article。 HostedService 是否可以在 IIS 未运行时启动托管在 IIS 上的 WebHost?

我正在尝试运行夜间作业,但我面临的问题是 IIS AppPool 在应用程序未使用时关闭。 HostedService在host不运行时不运行,请问HostedService能不能启动host?

【问题讨论】:

  • Web 主机和托管服务在同一个进程中运行 - 如果 IIS 已关闭 AppPool,则没有代码运行以再次启动它。您应该只禁用 IIS 空闲超时。

标签: c# .net iis ihostedservice


【解决方案1】:

IHostedService是整个系统中的一个特殊接口。当主机启动时,它会在服务容器的托管服务集合中注册的每个IHostedService 实现上调用IHostedService.StartAsync。但是当 IIS AppPool 关闭时,它不能再次启动主机。所以最好的办法是防止 IIS AppPool 因不活动而关闭。

以下设置可以使应用程序池始终运行,永不休眠。

将启动模式设置为“始终运行”。

将空闲超时(分钟)设置为 0。

Set Preload Enabled = True(站点提前设置)

禁用应用程序池回收..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-13
    • 2017-06-01
    • 1970-01-01
    • 2017-05-04
    • 1970-01-01
    • 2016-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多