1. ホーム
  2. http

[解決済み] IISファイルのダウンロードがハングアップ/タイムアウトする - sc-win32-status = 64

2022-02-14 18:30:50

質問

HTTPでファイルをダウンロードしようとすると、大量の"hangs"が発生する理由について、何か考えがありますか?

  • サーバーはIIS 6
  • ダウンロードされるファイルは、Webページではなく、バイナリファイルです。
  • TrueUpdate や FlexNet Web 更新パッケージ、基本的な HttpWebRequest/HttpWebResponse ロジックを実行し、応答ストリームを使用してダウンロードするだけのカスタム .NET アプリなど、複数のクライアントがハングアップします。
  • IIS ログファイルの署名成功時 200 0 0 (sc-status sc-substatus sc-win32-status)
  • 失敗の場合、エラーシグネチャは200 0 64
  • sc-win32-status の 64 は "指定されたネットワーク名はもう利用できません" です。
  • FirefoxでURLを指定すると、毎回正常にダウンロードできます(おそらく、ボンネットの下で何らかの再試行ロジックが発生しているのでしょう)。

この時点で、私のサーバーに何かおかしなことがあってこれらのエラーを投げているのか、それともこれは通常のネットワーク動作で、私はより障害に強いクライアントを使う(または書く)必要があるのか、どちらかのように思われます。

何か思い当たることはありますか?

解決方法は?

おそらく、あなたの問題は、あなたが返信コメントで推測したように、ISPとの低レベルのネットワークの問題だったのでしょう。私もIISで同様の問題を経験しており、ログファイルに200 0 64という謎の行が表示されることがあり、それでこの投稿を見つけた次第です。ちなみに、これは私のsc-win32-status=64の理解ですが、間違っていたらどなたか訂正していただけると幸いです。

  • sc-win32-status 64は、"指定されたネットワーク名はもう利用できません。"という意味です。
  • IIS は最終応答をクライアントに送信した後、クライアントからの ACK メッセージを待ちます。
  • 時々、クライアントは最終的なACKをサーバーに送り返す代わりに、接続をリセットすることがあります。これは優雅な接続の終了ではないので、IIS は中断を示すために "64" コードをログに記録します。
  • 多くのクライアントは、TIME_WAIT/CLOSE_WAITのままではなく、ソケットを解放するために、接続が終了した時点で接続をリセットします。
  • プロキシは、個々のクライアントよりも頻繁にこれを行う傾向があるかもしれません。