托管在Azure中的App Service有时返回502错误

时间:2020-02-03 15:43:37

标签: azure asp.net-core-webapi azure-web-app-service

对于Azure中托管的App Service中的某些Web API请求(可能是长时间运行的),我收到响应502错误页面。有时API调用失败,有时成功。

502-Web服务器在充当网关或代理服务器时收到无效响应

您要查找的页面有问题,无法显示。当Web服务器(充当网关或代理)联系上游内容服务器时,收到来自内容服务器的无效响应。

我尝试登录日志文件(LogFiles/eventlog.xml),但无法跟踪错误。

我想它已连接到某个超时,但是不知道可以在App Service的设置中将其设置在何处。

2 个答案:

答案 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