C# 针对长时间运行的任务从.net核心WEB API获取500个错误
我正在使用.NETCoreAPI从其他服务检索数据,并将数据传递给Angular应用程序。在等待了一段时间之后,对于长时间运行的任务,我面临来自API的500个异常。我想等待我的.net核心API很长时间,以便从其他服务获取数据。我在程序类中添加了保持活动超时,如下所示C# 针对长时间运行的任务从.net核心WEB API获取500个错误,c#,asp.net-core,.net-core,asp.net-core-webapi,C#,Asp.net Core,.net Core,Asp.net Core Webapi,我正在使用.NETCoreAPI从其他服务检索数据,并将数据传递给Angular应用程序。在等待了一段时间之后,对于长时间运行的任务,我面临来自API的500个异常。我想等待我的.net核心API很长时间,以便从其他服务获取数据。我在程序类中添加了保持活动超时,如下所示 public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureLogging((hostingContext, logging) =>
{
logging.AddConsole();
})
.UseStartup<Startup>()
.UseKestrel(o => { o.Limits.KeepAliveTimeout = TimeSpan.FromMinutes(30);});
公共静态IWebHostBuilder CreateWebHostBuilder(字符串[]args)=>
WebHost.CreateDefaultBuilder(args)
.ConfigureLogging((hostingContext,logging)=>
{
logging.AddConsole();
})
.UseStartup()
.UseKestrel(o=>{o.Limits.KeepAliveTimeout=TimeSpan.FromMinutes(30);});
但仍然没有变化。此外,我还尝试了根据本文实现IHostedService来使用后台服务。但仍然面临着这个问题。如果有人能帮我处理这个问题,我将不胜感激 您从服务器上的代码设置的
KeepAliveTimeout
是处理传入请求的超时。设置对超时的传出请求没有帮助
如果使用HttpClient
调用外部服务,请查看其设置
获取或设置在请求超时之前等待的时间跨度
及
默认值为100000毫秒(100秒)
有点离题感觉这可能不是从外部服务获取信息的最佳结构。就我而言,API应该是快速和轻便的
如果外部服务的数据不是太不稳定,您可以查看从外部服务获取信息的其他方式,例如运行cron job/webjob/azure函数并将结果存储在某种形式的缓存或存储中。您在服务器上通过代码设置的
KeepAliveTimeout
是处理传入请求的超时。设置对超时的传出请求没有帮助
如果使用HttpClient
调用外部服务,请查看其设置
获取或设置在请求超时之前等待的时间跨度
及
默认值为100000毫秒(100秒)
有点离题感觉这可能不是从外部服务获取信息的最佳结构。就我而言,API应该是快速和轻便的 如果外部服务的数据不是太不稳定,那么您可以看看从外部服务获取信息的其他方法,比如运行cron job/webjob/azure函数并将结果存储在某种形式的缓存或存储中