Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 针对长时间运行的任务从.net核心WEB API获取500个错误_C#_Asp.net Core_.net Core_Asp.net Core Webapi - Fatal编程技术网

C# 针对长时间运行的任务从.net核心WEB API获取500个错误

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

我正在使用.NETCoreAPI从其他服务检索数据,并将数据传递给Angular应用程序。在等待了一段时间之后,对于长时间运行的任务,我面临来自API的500个异常。我想等待我的.net核心API很长时间,以便从其他服务获取数据。我在程序类中添加了保持活动超时,如下所示

 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函数并将结果存储在某种形式的缓存或存储中