maxRequestLengthまたはmaxAllowedContentLengthのどちらが優先されますか?


127

アップロードの最大許容ファイルサイズを変更しているときに、これらの2つの設定を偶然見つけました。

sytem.webあなたが持っているHTTPランタイムでノードをmaxRequestLength。でsystem.webServerあなたが持っているrequestLimitsmaxAllowedContentLengthを

どちらが他よりも優先されますか?そして、両方を設定する必要がありますか、それとも最後の1つ(IIS7用)で十分ですか?

回答:


196

maxRequestLengthはASP.NETでサポートされる最大リクエストサイズを示し、maxAllowedContentLengthはIISでサポートされるリクエストのコンテンツの最大長を指定します。したがって、大きなファイルをアップロードするには、両方を設定する必要があります。小さなファイルが「優先されます」。

(私はこれをhttp://forums.iis.net/t/1169846.aspxからピックアップしました-それが原因であると信じてください。)

適切なweb.configファイルを編集することで、両方を特定のサイトまたはサイト内のフォルダーに対してローカルに設定できます。ファイル(まあ、リクエスト)の長さがmaxAllowedContentLengthよりも小さいが、maxRequestLengthよりも長い場合、標準(ASPX)エラーページがあれば、ユーザーに表示されます。逆の場合、代わりにIISエラーページが表示されます。そのため、maxAllowedContentLengthを非常に大きな値(このWebサイト/フォルダーの場合のみ)にして、制限値をmaxRequestLengthにすることをお勧めします。

最後に、maxRequestLengthはKBであるのに対し、maxAllowedContentLengthはBYTESであることに注意してください。


ページに3つのアップロードコントロールがあり、アップロードコントロールには50 MBの制限があります。したがって、合計150 MBを一度にアップロードしています。私の構成はmaxAllowedContentLength = "51200000"&executionTimeout = "1200"&maxRequestLength = "51200"です。ここでどの長さを変更するか。提案してください。
Nirav Vasoya

21

短くて甘い答えは、2つのうち小さい方が優先されるということです。ただし、私の意見では、maxRequestLengthを2つのうち小さい方に設定することをお勧めします。これは、Global.asaxのApplication_Errorイベントで例外を超えた場合に例外をキャッチできるためです。maxAllowedContentLengthを超えると、最初にIISがASP.NETではなくそれを処理するため、コードで処理するのが難しくなります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.