DOBON.NET DOBON.NETプログラミング掲示板過去ログ

ASPでファイルアップロードできる最大値

環境/言語:[Windows2003(IIS6.0) クライアント=IE6.0]
分類:[その他]

はじめまして、お世話になります。

ASPでファイルアップロードのプログラムを作成しています。
アップロードさせるファイルですが、
CD-ROMの内容(最大1G)ぐらいをアップさせたいという要望があります。
通信に時間がかかるのは、承知しています。
(ちなみに、現在は、10Mで、稼働させています。)

下記の設定値を変更すればよいというのは分かるのですが、
最大どのぐらいまで、指定可能なのでしょうか?

試してみようとは思うのですが、
適当なサーバーが現在ありません。
ご存知の方、よろしくお願い致します。

(最大値をご存知なくても、例えば、
「XXXMまではOKでした」や
「XXXMは駄目でした」
というような内容でも教えていただきたいです)

●指定する箇所
AspMaxRequestEntityAllowed
> 下記の設定値を変更すればよいというのは分かるのですが、
> 最大どのぐらいまで、指定可能なのでしょうか?

正確な値を答えるのは困難です。

32bit Windows の場合、2GB または 3GB が意味のある最大の値のはずです。
ですが、その値が即ちファイルアップロードで受け入れ可能なファイル容量ではありません。

2GB または 3GB という値は、32bit Windows でユーザプロセスが利用可能な最大のメモリ空間の大きさです。
しかしながら、実際にはその全てをユーザプログラムによって利用できるわけではありません。

ユーザプログラム自体もこの空間に読み込まれてから実行されます。
また、Windows OS ではユーザプログラムの実行に際して様々な DLL がメモリに読み込まれ、同空間を消費します。

元々 2GB, #GB あったメモリ空間がなんやかやと目減りして、残った分がユーザプログラムから利用可能となります。

ASP はアップロードされたファイルイメージを一旦すべてメモリに溜め込む仕様の筈なので、↑の「残った分」が有効な設定値となります。

が、ASP というか IIS は、1プロセスで複数セッションを扱うため↑の「残った分」のメモリ空間を、複数セッションで共有して使うことになります。。。

とまぁ、大分省略して書いても内部状況はこんなに複雑なわけです。


> (最大値をご存知なくても、例えば、
> 「XXXMまではOKでした」や
> 「XXXMは駄目でした」
> というような内容でも教えていただきたいです)

同時アクセスを行わないとして、1GB 強くらいが現実的な最大値なんじゃないでしょうか。
渋木宏明(ひどり)さん、ご回答有難うございます。

決まっていないのですね、
確かに、サーバーの環境によりますから、
仕方ないですね。

教えていただいた内容はとても勉強になりました。
一旦メモリに溜め込むので、そのサイズにもよるのですね。

随分先になりますが、テストサーバーが準備できたら、試してみたいと思います。
MicrosoftのFAQに指定できる最大サイズの記述がありました。

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iissdk/html/99b8a8bd-f9e7-43a8-b4cf-1186e2b3e9e2.asp

http://support.microsoft.com/kb/327659/ja#top

記載内容を見ると、最大は、「1G」のようです。

テストサーバーが入手できたので、
最大サイズを1Gに設定し、試してみました。

すると...

なんと、60MまではOKですが、70Mで駄目でした。
駄目というのは、アップロードのプログラムが「空画面になる」という現象です。

もちろん、タイムアウトの設定も1時間にしています。

これは、サーバーの性能が原因でしょうか?
(Windows2003でそれなりのサーバーなのですが...)

何か、同じような現象に遭われた方いらっしゃいませんか?
また、これ以上(60M以上)のファイルのアップロードができたかた、いらっしゃいませんか?(アップロードは2分程度でした)

よろしくお願い致します。

DOBON.NET | プログラミング道 | プログラミング掲示板