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>
バックグラウンド:
ARRを使用して、ほとんどの場合WCF(Basic HTTP)とRESTであるバックエンドサービスの負荷分散と高可用性を実現するためのPoCを構築しています。
(REST)サービスの1つは、バッチジョブから1日に数回大きな(ish)ファイルを受信するために使用されます。 RESTサービスは、ファイルの処理が完了するまで(5分かかる可能性があります)戻りません。クライアントアプリケーションは処理が完了したことを知る必要があるためです(以下の手順が続きます。最初に依存)。
私がついにそれを理解したので、私自身の質問に答えます。
これをapplicationHost.config
の下のconfiguration/system.applicationHost
に追加しました:
<webLimits connectionTimeout="00:10:00" minBytesPerSecond="0" />
しかし、保存してIIS ManagerのManage Server
の下にあるRestart
を押した後でも、2分後も502
で応答しました。
ただし、今日、いくつかのIIS機能(失敗したリクエストトレース)をインストールしたときに、IISサービスW3SVC
とWeb管理サービスWMSvc
、そして突然502
が停止しました。
私の場合、プロキシのタイムアウトを変更することで問題を解決しました
これらの手順はIIS v7
ネットワークカードのデフォルトのMTU設定に関連する同様の問題があり、1500ではなく1514に設定されていたため、大きな投稿でのみ問題が発生していました。