インターネット インフォメーション サービスで 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 要求のエンティティ本文で許可される最大バイト数を設定します。 これを行うには、次の手順を実行します。
コマンド プロンプトで、「」と入力
cd drive :\inetpub\adminscripts
し、 Enter キーを押します。注:
フォルダーを変更するこのコマンドでは、 ドライブ は IIS がインストールされているハード ディスクのプレースホルダーです。
コマンド プロンプトで、 コマンド
cscript adsutil.vbs set w3svc/ASPMaxRequestEntityAllowed size
を入力し、 Enter キーを押します。注:
このコマンドでは、 size は、許可する最大のファイル サイズアップロードのプレースホルダーです。 最大値は 1,073,741,824 バイトです。 この値を、必要な機能を許可する最小値に設定します。
コマンド プロンプトで、 コマンド
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 要求に固有です。 プロパティは MaxRequestEntityAllowed
、World Wide Web Publishing Service (WWW Service) レベルで 1 MB に設定できます。 その後、特定の ASP アプリケーションで AspMaxRequestEntityAllowed
処理されるデータ量が少ないことがわかっている場合は、 プロパティを小さい値に設定できます。