我有一个运行在Windows Server上的asp.net核心应用程序。这正在使用一些后台任务来使用外部服务来获取数据。我们面临的一个问题是,应用程序池回收/重新启动后,后台任务无法运行。只有在我们访问应用程序后,它才会运行。我们找到了有关此的文章。
由于本文介绍了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
}
}
还有其他解决方法吗?