web-dev-qa-db-ja.com

優先度、maxRequestLengthまたはmaxAllowedContentLengthのどちらを取得しますか?

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

sytem.webには、http runtimeノードと-がありますmaxRequestLengthsystem.webServerには、)でrequestLimitsがありますmaxAllowedContentLength

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

124

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

(私はこれを http://forums.iis.net/t/1169846.aspx から選択しました-期限が来たらクレジットします。)

適切なweb.configファイルを編集して、特定のサイトまたはサイト内のフォルダーの両方にローカルに設定できます。ファイル(要求)の長さがmaxAllowedContentLength未満でmaxRequestLengthを超える場合、ユーザーは標準(ASPX)エラーページを取得します(存在する場合)。逆の場合は、代わりにIISエラーページが表示されます。次に、制限値をmaxRequestLengthにします。

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

189
Ed Graham

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

19
joelmdev