2

这个问题与在 IIS 上运行的 ASP.NET Core 2.2 应用程序有关,特别是在向 DI 容器注册IHostedService实例时。

我读到的每一篇关于IHostedService.StopAsync()的文章都只是谈论StopAsync()在主机“关闭”时被调用,但我想知道 IIS 回收时会发生什么。

我的问题:

1. StopAsync()IIS回收时调用?

2. 无论使用InProcess托管还是OutOfProcess托管,答案是否相同?(ASP.NET CoreInProcess从 2.2 版开始支持)

4

1 回答 1

1
  1. StopAsync()IIS回收时调用?

是的

参考使用 IHostedService 和 BackgroundService 类在微服务中实现后台任务

部署注意事项和要点

请务必注意,部署 ASP.NET Core WebHost 或 .NET Core 主机的方式可能会影响最终解决方案。例如,如果您将 WebHost 部署在 IIS 或常规 Azure App Service 上,您的主机可能会因为应用程序池回收而关闭。

......

注意:强调我的

通过扩展将停止任何IHostedService

于 2019-06-18T11:11:32.023 回答