IIS回收时是否调用IHostedService.StopAsync()?

时间:2019-06-14 15:48:13

标签: iis dependency-injection asp.net-core-2.2 asp.net-core-hosted-services

此问题与在IIS上运行的ASP.NET Core 2.2应用程序有关,尤其是在使用DI容器注册IHostedService的实例时。

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

我的问题:

1。 IIS回收时是否调用StopAsync()

2。不管使用InProcess托管还是OutOfProcess托管,答案都是一样的吗?(ASP.NET Core从2.2版开始支持InProcess

1 个答案:

答案 0 :(得分:0)

  
      
  1. IIS回收时是否调用StopAsync()
  2.   

引用Implement background tasks in microservices with IHostedService and the BackgroundService class

  

部署注意事项和要点

     

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

     

.....

注意:强调我的

通过扩展将停止所有IHostedService