本当に大きなファイルのアップロードを処理するようにIISを構成するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/206132

  •  03-07-2019
  •  | 
  •  

質問

プラットフォーム: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" />

to:

<processModel autoConfig="true" responseDeadlockInterval="00:30:00" responseRestartDeadlockInterval="00:30:00" />

およびMetaBase.xml内: 変更:

AspMaxRequestEntityAllowed="204800"

to:

AspMaxRequestEntityAllowed="200000000"

アップロードが失敗すると、IISから404エラーが返されます。私のWebフォームは処理を開始しません。少なくとも、Page_Loadイベントに到達しません。そのハンドラーの開始時に例外をスローしましたが、大きなファイルではまったく実行されません。

小さなファイルでも問題なく動作します(最大5.5MBまでテストしました)。どのファイルサイズが制限なのか正確にはわかりませんが、クライアントがアップロードする必要がある最大のファイルではないため、制限は150MBを超える必要があることを知っています。

誰でも助けてもらえますか?

役に立ちましたか?

解決

UrlscanはすべてのWebサイトでアクティブであり、独自のリクエストエンティティの長さ制限があります。 UrlscanがグローバルISAPIフィルターであり、個々のWebサイトでは実行されていないため、Urlscanがサーバーで実行されていることを知りませんでした。

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

他のヒント

(グーグル向けの注意):

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>

この問題に遭遇したとき、この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

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

NeatUpload http://www.brettle.com/neatupload をお試しください。 マニュアルから:<!> quot;デフォルトでは、NeatUploadはアップロードのサイズを直接制限しません。<!> quot;

Velodoc XP Edition を試すこともできます。これには、NeatUploadに比べて、 ASP.NET Ajax拡張。詳細については、 Velodoc Webサイトも参照してください。

言う:

しかし1536000は1.5MBだけですか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top