通过 ARR POST 大型文件时,请求会在 120 秒后超时。客户端收到错误代码502 Bad Gateway
。我已将 Web 场的“代理超时”配置为 600 秒。我还将的配置Connection time-out
为Default Web Site
600 秒。ARR 服务器已重新启动。
以下内容来自 ARR 服务器上的日志文件:
2015-05-07 13:25:16 192.168.87.155 POST /Redacted/Import/RedactedImport20150507_152313.csv X-ARR-CACHE-HIT=0&X-ARR-LOG-ID=253daa4a-8372-405a-8efd-21ebbc38353f 80 - 192.168.87.198 - redacted.local 502 3 64 120436
来自 applicationHost.config:
<webFarm name="redacted.local" enabled="true">
<server address="redacted.local" enabled="true" />
<applicationRequestRouting>
<healthCheck url="http://redacted.local/redacted.svc" liveTrafficFailureCodes="400-" />
<protocol timeout="00:10:00" />
</applicationRequestRouting>
</webFarm>
背景:
我正在构建一个 PoC,用于使用 ARR 为我们的后端服务实现负载平衡和高可用性,这些服务主要是 WCF(基本 HTTP)和 REST。
其中一个 (REST) 服务用于每天从批处理作业中接收几次大型文件。REST 服务直到文件处理完成(可能需要 5 分钟)才会返回,因为客户端应用程序需要知道处理何时完成(后面还有更多步骤,具体取决于第一个步骤)。
答案1
就我而言,我通过更改代理超时解决了该问题
- 转到 IIS 管理器
- 应用程序请求路由
- 在“操作”下,转到服务器代理设置
- 将超时时间更改为您想要的值。
这些步骤适用于 IIS v7
答案2
对于 iis10
- 去应用程序请求路由缓存
- 右键单击并选择服务器代理设置
- 在下面代理设置部分改变超时(秒)价值
答案3
回答我自己的问题,因为我终于明白了。
我将其添加applicationHost.config
到configuration/system.applicationHost
:
<webLimits connectionTimeout="00:10:00" minBytesPerSecond="0" />
但即使在 IIS 管理器中保存并按下后Restart
,它仍然在两分钟后Manage Server
做出响应。502
但是,今天当我安装一些 IIS 功能(失败请求跟踪)时,我重新启动了 IIS 服务W3SVC
和 Web 管理服务WMSvc
,然后突然502
停止了。
答案4
我们遇到了类似的问题,与网卡上的默认 MTU 设置有关,它被设置为 1514 而不是 1500,这只会导致较大的帖子出现问题。