通过 ARR 运行时,大文件的 POST 超时

通过 ARR 运行时,大文件的 POST 超时

通过 ARR POST 大型文件时,请求会在 120 秒后超时。客户端收到错误代码502 Bad Gateway。我已将 Web 场的“代理超时”配置为 600 秒。我还将的配置Connection time-outDefault Web Site600 秒。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

就我而言,我通过更改代理超时解决了该问题

  1. 转到 IIS 管理器
  2. 应用程序请求路由
  3. 在“操作”下,转到服务器代理设置
  4. 将超时时间更改为您想要的值。

这些步骤适用于 IIS v7

答案2

对于 iis10

  1. 应用程序请求路由缓存
  2. 右键单击并选择服务器代理设置
  3. 在下面代理设置部分改变超时(秒)价值

答案3

回答我自己的问题,因为我终于明白了。

我将其添加applicationHost.configconfiguration/system.applicationHost

<webLimits connectionTimeout="00:10:00" minBytesPerSecond="0" />

但即使在 IIS 管理器中保存并按下后Restart,它仍然在两分钟后Manage Server做出响应。502

但是,今天当我安装一些 IIS 功能(失败请求跟踪)时,我重新启动了 IIS 服务W3SVC和 Web 管理服务WMSvc,然后突然502停止了。

答案4

我们遇到了类似的问题,与网卡上的默认 MTU 设置有关,它被设置为 1514 而不是 1500,这只会导致较大的帖子出现问题。

https://blogs.technet.microsoft.com/askpfeplat/2014/12/01/psa-incorrect-mtu-size-causes-connectivity-issues-with-windows-server-2012-and-windows-server-2012-r2/

相关内容