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

时间:2018-11-30 12:49:42

标签: asp.net-core application-pool recycle

我有一个运行在Windows Server上的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
    }
}

还有其他解决方法吗?

0 个答案:

没有答案