我正在使用 .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 函数并将结果存储在某种形式的缓存或存储中。
- 1 回答
- 0 关注
- 94 浏览
添加回答
举报
0/150
提交
取消