【问题标题】:App Service hosted in Azure returns 502 error sometimesAzure 中托管的应用服务有时会返回 502 错误
【发布时间】:2020-02-04 17:41:19
【问题描述】:

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

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

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

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

我想是连接了一些超时,但不知道在App Service的设置中可以设置在哪里。

【问题讨论】:

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


    【解决方案1】:

    可能是网络问题。我建议您实施重试和断路器模式以更好地处理此类问题:

    https://docs.microsoft.com/en-us/azure/architecture/patterns/retry

    【讨论】:

      【解决方案2】:

      在 Azure 中,对于 Kestrel 服务器,IIS 是 reverse proxy

      我通过在 Program.cs 文件中的BuildWebHost 函数中添加.UseKestrel(...) 解决了这个问题,如下所示:

      public static IWebHost BuildWebHost(string[] args) =>
          WebHost.CreateDefaultBuilder(args)
              .UseStartup<Startup>()
              .UseKestrel(o => { o.Limits.KeepAliveTimeout = TimeSpan.FromMinutes(10); })
              .Build();
      }
      

      关于长时间运行任务超时的更一般的问题是answered here

      【讨论】:

        猜你喜欢
        • 2021-11-29
        • 2021-01-12
        • 2018-08-20
        • 1970-01-01
        • 2018-04-09
        • 2012-07-11
        • 2019-01-31
        • 2020-10-16
        • 1970-01-01
        相关资源
        最近更新 更多