为了账号安全,请及时绑定邮箱和手机立即绑定

对于长时间运行的任务,从 .net core WEB API 获取 500 错误

对于长时间运行的任务,从 .net core WEB API 获取 500 错误

C#
慕后森 2023-09-09 17:17:12
我正在使用 .net core API 从其他服务检索数据并将数据传递给 Angular 应用程序。在等待一段时间后,我在长时间运行的任务中遇到来自 API 的 500 异常。我想等待我的 .net core 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);});但仍然没有任何变化。我还按照此处的文章尝试通过实现 IHostedService 来使用后台服务。但仍然面临这个问题。我将不胜感激有人帮助我如何处理这个问题。
查看完整描述

1 回答

?
慕妹3146593

TA贡献1820条经验 获得超9个赞

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

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

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

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

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

如果外部服务的数据不太不稳定,您可以考虑其他从外部服务获取信息的方法,例如运行 cron job/webjob/azure 函数并将结果存储在某种形式的缓存或存储中。


查看完整回答
反对 回复 2023-09-09
  • 1 回答
  • 0 关注
  • 94 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信