猫とコード

化学メーカーでweb開発している猫大好きエンジニアの備忘録です。

IIS8.5で大量のファイルアップロードがHTTP Error 404.13で失敗するときの対処

環境

したいこと

IIS8.5で大量/大容量のファイルをアップロードしたい

エラー内容

ファイルをアップロードすると下記のような表示がでる

HTTP Error 404.13
リクエスト フィルタリング モジュールは、リクエスト コンテンツの長さを超えるリクエストを拒否するように設定されています。
考えられる原因:
コンテンツの長さが構成された値を超えているため、Web サーバーで要求のフィルタリングが構成され、要求が拒否されます。
試すことができるもの: applicationhost.config または web.config ファイルの configuration/system.webServer/security/requestFiltering/requestLimits@maxAllowedContentLength 設定を確認します。

対処法

  1. サーバマネージャー⇒「役割と機能の追加」
  2. 役割と機能の追加ウィザード⇒「次へ」×3⇒「サーバの役割」
  3. 「Webサーバー(IIS)」>「Webサーバー」>「セキュリティ」>要求フィルターをインストール

    f:id:yurukaiha:20210608133819p:plain
    要求フィルターをインストール

  4. IISマネージャに移動

  5. IISマネージャの大量ファイルアップロードを許可したいサイトを選択  入れ子構造になっている場合は最上位のサイトを設定する(地球アイコンのところ)  f:id:yurukaiha:20210608134258p:plain
  6. ASP」の設定を開く  「応答バッファの処理の制限」「最大要求エンティティボディ制限」の値を変更する  (Byte指定なので50MBを許可する場合は「52428800」にする) f:id:yurukaiha:20210608134436p:plain
  7. 「要求フィルター」の設定を開く>右端の「機能設定の編集」  要求制限の「許可されたコンテンツ最大長(バイト)」を変更する(上の「最大要求~」と同じ値) f:id:yurukaiha:20210608134736p:plain

設定完了です。IIS再起動等は必要なかったです。

参考サイト