インターネット インフォメーション サービスで ASP 要求を使用して大きなファイルをアップロードするときのエラー 403

この記事は、Active Server Pages 要求を使用して、インターネット インフォメーション サービス (IIS) 8.0 以降のバージョンがインストールされているコンピューターに大きなファイルをアップロードするときに発生する問題を解決するのに役立ちます。

元の製品バージョン:インターネット インフォメーション サービス
元の KB 番号: 327659

現象

重要

この記事には、メタベースの編集に関する情報が含まれています。 メタベースを編集する前に、問題が発生した場合に復元できるバックアップ コピーがあることを確認します。 これを行う方法については、Microsoft 管理コンソール (MMC) の 「構成のバックアップ/復元のヘルプ 」トピックを参照してください。

Active Server Pages (ASP) 要求を使用して、インターネット インフォメーション サービス (IIS) 8.0 以降のバージョンがインストールされているコンピューターに大きなファイルをアップロードすると、アップロードが失敗する可能性があります。 また、エラー 403 応答または次のいずれかに似たエラー メッセージが表示される場合があります。

  • エラー メッセージ 1

    要求オブジェクト エラー 'ASP 0104 : 80004005' 操作が許可されていません

  • エラー メッセージ 2

    007~ASP 0104~操作不可

  • 多数のフォーム データを ASP ページに投稿すると、次のようなエラー メッセージが表示されることがあります。

    エラー '80020009' 例外が発生しました

さらに、 メソッドを使用すると、ファイルの Response.binaryWrite アップロードが失敗する可能性があります。

以前のバージョンの IIS で同じファイルのアップロードが機能していた場合でも、これらの現象の 1 つ以上が発生します。

原因

この問題は、ヘッダーが Content-Length 存在し、ヘッダーが Content-Length IIS メタベースの プロパティの値よりも大きいデータ量を AspMaxRequestEntityAllowed 指定している場合に発生します。 プロパティの AspMaxRequestEntityAllowed 既定値は 204,800 バイトです。

注:

このメタベース プロパティは、IIS の 2002 年 10 月の累積的な更新プログラムに最初に含まれていました。 このメタベース プロパティは、IIS 8.0 以降のバージョンの既定のインストールに含まれています。

解決方法

警告

メタベースを誤って編集すると、メタベースを使用する製品を再インストールする必要がある重大な問題が発生する可能性があります。 メタベースを誤って編集した場合に発生する問題を解決できることを Microsoft は保証できません。 ご自身の責任でメタベースを編集してください。

注:

メタベースを編集する前に、必ずバックアップしてください。

この問題を解決するには、 プロパティの値を AspMaxRequestEntityAllowed 変更して、ASP 要求のエンティティ本文で許可される最大バイト数を設定します。 これを行うには、次の手順を実行します。

  1. コマンド プロンプトで、「」と入力 cd drive :\inetpub\adminscriptsし、 Enter キーを押します。

    注:

    フォルダーを変更するこのコマンドでは、 ドライブ は IIS がインストールされているハード ディスクのプレースホルダーです。

  2. コマンド プロンプトで、 コマンド cscript adsutil.vbs set w3svc/ASPMaxRequestEntityAllowed sizeを入力し、 Enter キーを押します。

    注:

    このコマンドでは、 size は、許可する最大のファイル サイズアップロードのプレースホルダーです。 最大値は 1,073,741,824 バイトです。 この値を、必要な機能を許可する最小値に設定します。

  3. コマンド プロンプトで、 コマンド iisresetを入力し、 Enter キーを押します。

詳細

プロパティは AspMaxRequestEntityAllowed 、ASP 要求のエンティティ本文で許可される最大バイト数を指定します。 ヘッダーが Content-Length 存在し、ヘッダーで Content-Length プロパティの値 AspMaxRequestEntityAllowed よりも大きいデータ量が指定されている場合、IIS は 403 エラー応答を返します。 プロパティは AspMaxRequestEntityAllowedPUT 要求と POST 要求にのみ適用されます。 プロパティは AspMaxRequestEntityAllowed 要求には GET 適用されません。 このメタベース プロパティは ASP にのみ適用されるため、他の Internet Server API (ISAPI) 拡張機能は影響を受けません。

プロパティは AspMaxRequestEntityAllowed 、 プロパティに関数内で MaxRequestEntityAllowed 関連付けられます。 ただし、 AspMaxRequestEntityAllowed プロパティは ASP 要求に固有です。 プロパティは MaxRequestEntityAllowed 、World Wide Web Publishing Service (WWW Service) レベルで 1 MB に設定できます。 その後、特定の ASP アプリケーションで AspMaxRequestEntityAllowed 処理されるデータ量が少ないことがわかっている場合は、 プロパティを小さい値に設定できます。