对于Azure中托管的App Service中的某些Web API请求(可能是长时间运行的),我收到响应502错误页面。有时API调用失败,有时成功。
502-Web服务器在充当网关或代理服务器时收到无效响应
您要查找的页面有问题,无法显示。当Web服务器(充当网关或代理)联系上游内容服务器时,收到来自内容服务器的无效响应。
我尝试登录日志文件(LogFiles/eventlog.xml
),但无法跟踪错误。
我想它已连接到某个超时,但是不知道可以在App Service的设置中将其设置在何处。
答案 0 :(得分:1)
网络可能有问题。我建议您实现重试和断路器模式,以更好地处理此类问题:
https://docs.microsoft.com/en-us/azure/architecture/patterns/retry
答案 1 :(得分:0)
在Azure中,Kestrel服务器的IIS是reverse proxy。
我通过在Program.cs文件的.UseKestrel(...)
函数中添加BuildWebHost
来解决此问题,如下所示:
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseKestrel(o => { o.Limits.KeepAliveTimeout = TimeSpan.FromMinutes(10); })
.Build();
}
关于长时间运行的任务超时的更一般的问题是answered here。