可以通过以下方法解决该问题:
在应用程序池设置中,常规”选项卡中的“进程挂起时间(分钟)”增加到更高的值,例如120分钟。这可以延长应用程序池保持运行的时间。
在代码中,可以使用try-catch语句将异常捕获并处理。以下是一个示例:
try
{
// your code here
}
catch(Exception ex)
{
// log the error
}
检查应用程序池的其他设置,例如“闲置超时(分钟)”和“最大工作进程数”,以确保它们适合应用程序的需求。
如果应用程序使用了依赖注入容器,请确保已正确配置和注册服务。有时候依赖项注入容器也会导致崩溃。
升级 ASP.NET Core 版本和 .NET Core SDK 版本。
运行 Kestrel 在后台线程中。
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseKestrel(options =>
{
options.ConfigureEndpointDefaults(lo => lo.Protocols = HttpProtocols.Http1AndHttp2);
options.Limits.MinRequestBodyDataRate =
new MinDataRate(bytesPerSecond: 100, gracePeriod: TimeSpan.FromSeconds(10));
options.Limits.MinResponseDataRate =
new MinDataRate(bytesPerSecond: 100, gracePeriod: TimeSpan.FromSeconds(10));
// Run Kestrel on a background thread
options.ApplicationSchedulingMode = SchedulingMode.Inline;
})
.UseStartup();