背景:
问题复制步骤
到目前为止我尝试过的事情
请告知如何解决此错误?
答案 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代码验证根本原因。另外,我们可以启用“失败请求跟踪”以了解更多详细信息。
上面的日志为我们提供了两个导入信息,该错误来自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应用程序的故障排除指南。
希望有帮助。