Yang mendapat prioritas, maxRequestLength atau maxAllowedContentLength?

127

Sambil mengubah ukuran file maksimum yang diizinkan untuk diunggah, saya menemukan kedua pengaturan itu.

Di sytem.web Anda memiliki simpul runtime http dengan maxRequestLength . Di system.webServer Anda memiliki requestLimits dengan maxAllowedContentLength .

Sekarang mana yang mendapat prioritas di atas yang lain? Dan apakah kita perlu mengatur keduanya atau apakah yang terakhir (yang untuk IIS7) cukup?

Floris Devriendt
sumber

Jawaban:

196

maxRequestLength menunjukkan ukuran permintaan maksimum yang didukung oleh ASP.NET, sedangkan maxAllowedContentLength menentukan panjang konten maksimum dalam permintaan yang didukung oleh IIS. Jadi, Anda perlu mengatur keduanya untuk mengunggah file besar: yang lebih kecil "menjadi prioritas".

(Saya mengambil ini dari http://forums.iis.net/t/1169846.aspx - kredit di mana sudah jatuh tempo.)

Anda dapat mengatur keduanya menjadi lokal ke situs tertentu atau bahkan folder dalam situs dengan mengedit file web.config yang sesuai. Jika panjang file (well, request) kurang dari maxAllowedContentLength tetapi lebih dari maxRequestLength, pengguna akan mendapatkan halaman kesalahan standar (ASPX) Anda, jika ada. Jika sebaliknya, dia akan mendapatkan halaman kesalahan IIS. Untuk alasan itu, Anda mungkin ingin memiliki maxAllowedContentLength ke nilai yang sangat besar (hanya untuk situs web / folder ini) dan kemudian memiliki nilai pembatas menjadi maxRequestLength.

Akhirnya, ingat bahwa maxRequestLength ada di KB sedangkan maxAllowedContentLength ada di BYTES!

Ed Graham
sumber
Saya memiliki 3 kontrol unggahan di halaman saya di mana kontrol unggah memiliki batas 50 MB. Jadi saya mengunggah total 150 MB dalam satu kesempatan, konfigurasi saya adalah maxAllowedContentLength = "51200000" & eksekusiTimeout = "1200" & maxRequestLength = "51200". panjang mana saya harus diubah di sini. Tolong sarankan.
Nirav Vasoya
21

Jawaban singkat dan manis adalah bahwa yang lebih kecil dari keduanya akan diutamakan. Meskipun begitu, menurut saya, disarankan untuk menetapkan maxRequestLength menjadi yang lebih kecil dari keduanya karena Anda dapat menangkap pengecualian dalam acara Application_Error Global.asax Anda jika harus dilampaui. Jika Anda melebihi maxAllowedContentLength pertama, IIS akan menghadapinya, bukan ASP.NET, membuatnya lebih sulit untuk berurusan dengan kode.

joelmdev
sumber