我知道以前有人问过这个问题,但我尝试了所有已知的解决方案,但仍然没有运气。我有一个请求返回大约 26MB 的 JSON。它在我的 azure Web 应用程序上返回 502。我已将 maxRequestLength 和 maxAllowedContentLength 设置为它们的最大允许值,详见此处。
如何在IIS7上运行时将最大允许的内容长度设置为500MB?
我还在我的 Web 应用程序的站点文件夹上设置了 applicationHost.xdt,并验证它是否已按此处详细说明应用。
Application Host.xdt in Azure Web Apps
尽管如此,我的请求每次超时正好是 4 分钟。我可以对在 iisexpress 上运行的本地主机运行相同的请求,指向 Azure SQL 数据库并返回数据,所以我知道这是 azure webapp 特有的。
我已在 Web 应用的"应用服务日志"部分中启用了所有类型的日志记录。当会话过期时,我看到 401 的其他失败请求跟踪,但此请求不会记录失败的请求跟踪或应用程序错误。在实时日志流中,它将请求显示为 Web 服务器日志中的 200 响应。
还有其他想法吗?
感谢您的详细问题并分享您已经尝试过的解决方案。我不确定您的 WebApp 上是否打开了">始终打开">功能。因此可能会发生此类超时错误,因此请启用它并让我们知道以进行进一步调查。
其他信息,Azure 负载均衡器的默认空闲超时设置为大约四分钟(230 秒(;这是常规空闲请求超时,会导致客户端在 230 秒后断开连接。但是,该命令在此之后仍将继续在服务器端运行。对于典型方案,这通常是 Web 请求的合理响应时间限制。在这种情况下,您可以查看异步方法来运行其他报表。WebJobs或Azure Functions是另一种选择。
如果"始终开启"配置未打开,请将其打开。即使没有流量,AlwaysOn 也有助于保持应用程序加载,它会向应用程序的 ROOT 发送请求。 向/发出请求时传递的任何文件都是将预热的文件,并且应用服务计划附带的此功能不会单独收费
1( 从 Azure 门户转到你的 Web 应用。
2( 选择设置>配置>常规设置。
3( 对于始终打开,选择打开。