次の方法で共有


インターネット インフォメーション サービス で 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 は保証できません。 メタベースは自己責任で編集してください。

メモ

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

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

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

    メモ

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

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

    メモ

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

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

詳細

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

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