AppPool 回收后运行 ASP.Net Core 后台任务

Shi*_*S R 5 application-pool recycle asp.net-core

我有一个在 Windows 服务器上运行的 asp.net 核心应用程序。这是使用一些后台任务来使用外部服务来获取数据。我们面临一个问题,在我们的应用程序池回收/重新启动后,后台任务没有运行。这仅在我们访问应用程序后运行。我们找到了一篇关于此的文章。

https://weblog.west-wind.com/posts/2013/Oct/02/Use-IIS-Application-Initialization-for-keeping-ASPNET-Apps-alive

由于本文描述了asp.net应用程序,下面的代码将在.net核心应用程序中替代上述解决方案

public class Startup 
{
    public void Configure(IApplicationBuilder app) 
    {
        var applicationLifetime = app.ApplicationServices.GetRequiredService<IApplicationLifetime>();
        applicationLifetime.ApplicationStopping.Register(OnShutdown);
    }

    private void OnShutdown()
    {
     // Do your cleanup here
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有其他工作可以解决这个问题?