Azure Web应用程序超时错误,响应为500/502

时间:2019-03-20 04:13:06

标签: azure asp.net-core azure-webapps

背景

  • .net core 2.2 Web应用程序
  • 使用Azure ARM
  • 部署在Azure Web应用程序中
  • 不涉及数据库。该应用正在尝试从Keyvault中读取一些信息。

问题复制步骤

  • 应用程序在本地工作
  • 使用Azure ARM部署应用
  • 成功部署后,导航到Web应用会导致502和500错误。我已经附上了屏幕截图。enter image description here

到目前为止我尝试过的事情

  • 打开diagnostic logs-我没有发现任何有趣的东西。
  • 我已经尝试过this和其他几个答案-没运气
  • 重新启动Web应用程序也无济于事。但是,一旦我更改了任何天蓝色的应用程序设置,该应用程序便开始运行-甚至将WEBSITE_HTTPLOGGING_RETENTION_DAYS的值从2更改为5也会使该应用程序运行。

请告知如何解决此错误?

1 个答案:

答案 0 :(得分:0)

502错误的网关错误响应与传统的500错误不同,后者主要是代码问题,这甚至使故障排除甚至更加困难

基本上,HTTP 502错误的网关服务器错误响应代码表明,充当网关或代理的Web服务器(在我们的方案中为IIS)从上游服务器收到无效的响应。发生这种情况可能有多种原因,例如,无法连接到上游服务器,上游服务器没有响应,或者上游服务器花费了太长时间做出响应(超时)。结果,充当网关或代理的服务器将报告状态为502。502很难进行故障排除的原因是,根本原因可能千差万别,并且取决于实际的应用程序框架,例如如Asp.Net,PHP,Java等。

众所周知,对于ASP.NET Core应用程序,要在IIS中托管该应用程序,我们需要安装AspNetCoreModule。它实际上是IIS中的本机模块,充当dotnet核心应用程序的反向代理,这就是为什么我们可能会在ASP.NET Core应用程序中遇到502错误的原因。

尽管502错误也可能是由底层平台问题(例如磁盘/存储问题)引起的,但在大多数情况下,我们需要关注上游服务器中运行的组件(根本原因),而IIS日志将为我们提供有关如何缩小问题的范围。

现在,假设我们在访问ASP.Net Core应用程序时遇到502错误,子状态代码可能没有足够的帮助。首先,我们可以检查IIS日志并通过sc-win32-status代码验证根本原因。另外,我们可以启用“失败请求跟踪”以了解更多详细信息。

enter image description here

上面的日志为我们提供了两个导入信息,该错误来自AspNetCoreModule,错误代码为2147954402。这意味着502错误是由AspNetCoreModule触发的,它可能经历了一些无效的响应。此外,我们可以使用err实用程序或访问http://errors/来确定2147954402只是WININET_E_TIMEOUT。默认情况下,ASP.NET Core请求超时为2分钟,我们可以通过设置文件中的requestTimeout更改它。有关更多ASP.NET Core配置的信息,请参考ASP.NET Core Module配置参考。

我也请您阅读asp.net core 2.2应用程序的故障排除指南。

https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/azure-apps/troubleshoot?view=aspnetcore-2.2

希望有帮助。