如果你希望ASP.NET Core 3.1应用程序在Program.Main完成运行后不终止进程,你可以使用以下方法:
使用WebHost.Run方法代替WebHost.RunAndWait方法
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run(); // 使用Run方法而不是RunAndWait方法
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup();
});
}
在WebHost中使用UseShutdownTimeout方法
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseShutdownTimeout(TimeSpan.FromSeconds(10)); // 设置关闭超时时间
webBuilder.UseStartup();
});
}
这些方法将确保应用程序在Program.Main完成运行后不会立即终止进程,而是等待一段时间,以确保所有请求都已处理完毕。你可以根据需要选择其中一种方法来解决这个问题。
上一篇:ASP.NET Core 3.1已经配置了“bundleconfig.json”,但没有创建捆绑包。
下一篇:asp.net core 3.1与Blazorise一起使用时,使用ValidateAll()方法不会重置验证规则。