9

プラットフォーム: 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 より大きくする必要があることはわかっています。

誰でも助けることができますか?

4

6 に答える 6

6

Urlscan はすべての Web サイトで有効で、独自の要求エンティティの長さ制限があります。Urlscan が私たちのサーバーで実行されていることを知りませんでした。なぜなら、それはグローバルな ISAPI フィルターであり、私の個々の Web サイトでは実行されていなかったからです。

注: グローバル ISAPI フィルターを見つけるには、IIS Admin の [Web サイト] フォルダーを右クリックし、[プロパティ] をクリックしてから、[ISAPI フィルター] タブをクリックします。

于 2008-10-15T22:39:30.360 に答える
3

(Google 社員向けのメモ):

IIS7 の場合、以下を web.config に追加します (上で追加しました<system.serviceModel>)。

<system.webServer>
        <security>
            <requestFiltering><requestLimits maxAllowedContentLength="262144000" /></requestFiltering> <!-- maxAllowedContentLength is in bytes. Defaults to 30,000,000 -->
        </security>
</system.webServer>
于 2011-12-19T21:48:37.813 に答える
2

この問題に遭遇したとき、次の KB 記事に従ってバッファ サイズの制限を増やす必要がありました: http://support.microsoft.com/kb/944886/en-us

これがASPに言及していることは知っていますが、ASP.NETでも機能したと思います。

編集:あなたの問題により関連し、他のオプションを提供するリンクがあります:
http://weblogs.asp.net/jgalloway/archive/2008/01/08/large-file-uploads-in-asp-net .aspx

于 2008-10-15T19:46:27.197 に答える
1

404 および Page_Load の欠落: IIS は、完全な POST がサーバー上にある場合にのみ要求を処理できます。したがって、POST が (サイズが原因で) 失敗した場合、ページのイベントを起動できません。

NeatUpload http://www.brettle.com/neatuploadを試すことができます。マニュアルから: 「デフォルトでは、NeatUpload はアップロードのサイズを直接制限しません。」

于 2008-10-15T20:00:57.450 に答える
0

ASP.NET Ajax拡張機能を使用するなど、NeatUploadに比べていくつかの利点があるVelodocXPEditionを試すこともできます。詳細については、VelodocのWebサイトも参照してください。

于 2008-11-27T13:47:43.877 に答える
0

あなたは言う:

しかし、1536000 は 1.5MB しかありませんか?

于 2009-07-28T04:32:00.317 に答える