我正在使用.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来使用后台服务。但是仍然面临这个问题。我将不胜感激,请帮助我如何处理此问题。
答案 0 :(得分:1)
您从服务器上的代码中设置的p
是处理传入请求的超时。设置对传出没有帮助的请求超时。
如果您要使用KeepAliveTimeout
调用外部服务,请查看设置其HttpClient.Timeout Property,
获取或设置请求超时之前要等待的时间。
和
默认值为100,000毫秒(100秒)。
有点题外话
感觉这可能不是从外部服务获取信息的最佳结构。就我而言,API应该快速而轻松。
如果外部服务的数据不太不稳定,则可以查看从外部服务获取信息的其他方式,例如运行cron job / webjob / azure函数以及以某种形式存储结果。缓存或存储。