ซึ่งได้รับลำดับความสำคัญ maxRequestLength หรือ maxAllowedContentLength


127

ในขณะที่เปลี่ยนขนาดไฟล์สูงสุดที่อนุญาตสำหรับการอัปโหลดฉันสะดุดกับการตั้งค่าทั้งสองนี้

ในsytem.webคุณมีhttp รันไทม์โหนดกับmaxRequestLength ในsystem.webServerคุณมีrequestLimitsกับmaxAllowedContentLength

ตอนนี้สิ่งใดได้รับความสำคัญเหนือกว่าคนอื่น ๆ และเราจำเป็นต้องตั้งค่าทั้งสองหรือเป็นค่าสุดท้าย (อันสำหรับ IIS7) เพียงพอหรือไม่?

คำตอบ:


196

maxRequestLength ระบุขนาดคำขอสูงสุดที่ ASP.NET สนับสนุนในขณะที่ maxAllowedContentLength ระบุความยาวสูงสุดของเนื้อหาในคำขอที่ IIS สนับสนุน ดังนั้นคุณต้องตั้งค่าทั้งสองเพื่ออัปโหลดไฟล์ขนาดใหญ่ไฟล์ที่เล็กกว่า "ให้ความสำคัญ"

(ฉันหยิบขึ้นมาจากhttp://forums.iis.net/t/1169846.aspx - เครดิตที่ครบกำหนด)

คุณสามารถตั้งค่าทั้งสองให้เป็นแบบโลคัลไปยังไซต์ใดไซต์หนึ่งหรือแม้แต่โฟลเดอร์ภายในไซต์ได้โดยแก้ไขไฟล์ web.config ที่เหมาะสม หากความยาวของไฟล์ (ดีคำขอ) น้อยกว่า maxAllowedContentLength แต่มากกว่า maxRequestLength ผู้ใช้จะได้รับหน้าข้อผิดพลาดมาตรฐาน (ASPX) ของคุณหากคุณมี ถ้าเป็นวิธีอื่นเขาจะได้รับหน้าข้อผิดพลาด IIS แทน ด้วยเหตุนี้คุณอาจต้องการ maxAllowedContentLength เป็นค่าที่ใหญ่มาก (สำหรับเว็บไซต์ / โฟลเดอร์นี้เท่านั้น) จากนั้นให้ค่า จำกัด เป็น maxRequestLength

สุดท้ายโปรดจำไว้ว่า maxRequestLength อยู่ใน KB ในขณะที่ maxAllowedContentLength อยู่ใน BYTES!


ฉันมีการควบคุมการอัปโหลด 3 รายการในหน้าของฉันซึ่งการควบคุมการอัปโหลดมีขีด จำกัด 50 MB ดังนั้นฉันกำลังอัปโหลดทั้งหมด 150 MB ในหนึ่งช็อตการกำหนดค่าของฉันคือ maxAllowedContentLength = "51200000" &ecutionTimeout = "1200" & maxRequestLength = "51200" ความยาวไหนที่ฉันควรเปลี่ยนที่นี่ ช่วยแนะนำหน่อยครับ.
Nirav Vasoya

21

คำตอบที่สั้นและไพเราะคือยิ่งทั้งสองตัวเล็กกว่าจะมีความสำคัญมากกว่า คำแนะนำแม้ว่า - ในความคิดของฉันขอแนะนำให้ตั้งค่า maxRequestLength ให้มีขนาดเล็กกว่าของทั้งสองเนื่องจากคุณสามารถจับข้อยกเว้นในเหตุการณ์ Application_Error ของ Global.asax ของคุณได้หากเกิน หากคุณเกิน maxAllowedContentLength IIS ตัวแรกจะจัดการกับมันแทน ASP.NET ทำให้ยากที่จะจัดการกับโค้ด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.