132

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

sytem.webには、maxRequestLengthを持つhttpランタイムノードがあります。system.webServerには、maxAllowedContentLengthを持つrequestLimitsがあります。

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

4

2 に答える 2

203

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単位であることに注意してください。

于 2011-06-24T19:10:38.783 に答える
23

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

于 2011-08-25T19:41:25.193 に答える