此问题与在IIS上运行的ASP.NET Core 2.2应用程序有关,尤其是在使用DI容器注册IHostedService的实例时。
我读到的每一篇关于IHostedService.StopAsync()的文章都只谈论StopAsync()
在主机“关闭”时被调用,但是我想知道IIS回收时会发生什么。
我的问题:
1。 IIS回收时是否调用StopAsync()
?
2。不管使用InProcess
托管还是OutOfProcess
托管,答案都是一样的吗?(ASP.NET Core从2.2版开始支持InProcess
)
答案 0 :(得分:0)
- IIS回收时是否调用
StopAsync()
?
是
引用Implement background tasks in microservices with IHostedService and the BackgroundService class
部署注意事项和要点
请务必注意,您部署ASP.NET Core的方式 WebHost或.NET Core Host可能会影响最终解决方案。对于 实例,如果您将WebHost部署在IIS或常规Azure应用上,则为 服务,由于应用程序池回收,您的主机可以关闭。
.....
注意:强调我的
通过扩展将停止所有IHostedService