プラットフォーム: IIS 6、ASP.Net 2.0 (.Net 3.5)、Server 2003。
ユーザーからファイルを受け取り、それらを処理し、結果を返すアプリケーションを構築しています。ファイルは、HTTP POST を使用して ASP.Net Web フォームにアップロードされます。アプリケーションは、いくつかの大きなファイル (数百 MB) を想定しています。
SWFUpload を使用して、素敵なプログレス バーでアップロードを完了していますが、アップロード アクセプター ページを指す標準の HTML フォームを使用してバイパスすると、まったく同じエラーが発生するため、問題の原因にはなりません。プログレス バーを使用すると、アップロードが 100% まで続き、その後失敗します。標準フォームでは、動作は同じように見えます。
現在、約 150MB のファイルをアップロードする際に問題が発生しています。見つけることができるすべての設定を変更しましたが、それでもうまくいきません。
これまでの変更点をまとめると、次のようになります。
Web.config: これを system.web 内に追加:
<httpRuntime executionTimeout="3600" maxRequestLength="1536000"/>
machine.config 内: system.web 内で、以下が変更されました:
<processModel autoConfig="true" />
に:
<processModel autoConfig="true" responseDeadlockInterval="00:30:00" responseRestartDeadlockInterval="00:30:00" />
および MetaBase.xml で: 変更:
AspMaxRequestEntityAllowed="204800"
に:
AspMaxRequestEntityAllowed="200000000"
アップロードが失敗すると、IIS から 404 エラーが発生します。Web フォームが処理を開始しないか、少なくとも Page_Load イベントに到達しません。そのハンドラーの先頭で例外をスローしましたが、大きなファイルではまったく実行されません。
小さなファイルではすべて正常に動作します (約 5.5MB までテストしました)。ファイル サイズの制限が正確にはわかりませんが、クライアントがアップロードする必要がある最大のファイルではないため、制限を 150 MB より大きくする必要があることはわかっています。
誰でも助けることができますか?