从.net核心WEB API获取500错误以进行长期运行的任务

时间:2019-08-20 10:19:35

标签: c# asp.net-core .net-core asp.net-core-webapi

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

 public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
        .ConfigureLogging((hostingContext, logging) =>
        {
            logging.AddConsole();
        })
        .UseStartup<Startup>()
        .UseKestrel(o => { o.Limits.KeepAliveTimeout = TimeSpan.FromMinutes(30);});

但是仍然没有变化。我也尝试通过根据文章here实现IHostedService来使用后台服务。但是仍然面临这个问题。我将不胜感激,请帮助我如何处理此问题。

1 个答案:

答案 0 :(得分:1)

您从服务器上的代码中设置的p是处理传入请求的超时。设置对传出没有帮助的请求超时。

如果您要使用KeepAliveTimeout调用外部服务,请查看设置其HttpClient.Timeout Property

  

获取或设置请求超时之前要等待的时间。

  

默认值为100,000毫秒(100秒)。

有点题外话
感觉这可能不是从外部服务获取信息的最佳结构。就我而言,API应该快速而轻松。

如果外部服务的数据不太不稳定,则可以查看从外部服务获取信息的其他方式,例如运行cron job / webjob / azure函数以及以某种形式存储结果。缓存或存储。

相关问题