PRB: ไม่สามารถอัปโหลดแฟ้มขนาดใหญ่เมื่อคุณใช้ตัวควบคุมเซิร์ฟเวอร์ HtmlInputFile

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 295626 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

อาการ

เมื่อคุณพยายามใช้นั้นHtmlInputFileควบคุมการอัปโหลดแฟ้มมีขนาดใหญ่ แฟ้มอาจไม่สามารถอัปโหลด

สาเหตุ

ปัญหานี้เกิดขึ้นเนื่องจากค่าเริ่มต้นค่าสำหรับการmaxRequestLengthพารามิเตอร์ในการ<httpruntime></httpruntime>ส่วนของแฟ้ม Machine.config คือ 4096 (เมกะไบต์ 4) อัปผล แฟ้มที่ใหญ่กว่าค่านี้จะไม่โหลดตามค่าเริ่มต้น

การแก้ไข

เมื่อต้องการแก้ไขปัญหา ให้ใช้วิธีการอย่างใดอย่างหนึ่งต่อไปนี้:
  • ในแฟ้ม Machine.config เปลี่ยนแปลงนั้นmaxRequestLengthคุณลักษณะขององค์ประกอบนั้น<httpruntime></httpruntime>ส่วนกำหนดค่าเป็นค่าที่มีขนาดใหญ่ การเปลี่ยนแปลงนี้มีผลต่อคอมพิวเตอร์ทั้งหมด
  • ในแฟ้ม Web.config แทนที่ค่าmaxRequestLengthสำหรับแอพลิเคชัน ตัวอย่างเช่น รายการต่อไปนี้ใน Web.config ให้แฟ้มที่มีค่าน้อยกว่า หรือเท่ากับ 8 เมกะไบต์ (MB) เพื่อที่สามารถอัปโหลด:
    <httpRuntime maxRequestLength="8192" />
    					

ข้อมูลเพิ่มเติม

โดยค่าเริ่มต้น มูลค่านี้ถูกจำกัดการ 4 MB เพื่อจำกัดการโจมตีการปฏิเสธการใช้บริการที่เป็นไปได้

เมื่อการmaxRequestLengthแอตทริบิวต์ที่กำหนดไว้ในแฟ้ม Machine.config และจากนั้น มีการร้องขอการลงรายการบัญชีอัป (ตัวอย่างเช่น แฟ้มโหลด) ที่เกินกว่าค่าของmaxRequestLengthไม่สามารถแสดงเพจในข้อผิดพลาดที่กำหนดเองได้ แทน Microsoft Internet Explorer จะแสดงข้อความแสดงข้อผิดพลาด "ไม่พบเซิร์ฟเวอร์หรือ DNS"

theoretically ขนาดการอัปโหลดแฟ้มสูงสุดมีขนาดใหญ่ fairly อย่างไรก็ตาม เนื่องจากการติดตามสุขภาพ ASP.NET คุณอัปไม่สามารถโหลดแฟ้มที่มีขนาดใหญ่มากใน ASP.NET ในกระบวนการของผู้ปฏิบัติงานของ ASP.NET มีช่องว่างที่อยู่เสมือนของ 2 กิกะไบต์ (GB) อย่างไรก็ตาม กระบวนการของผู้ปฏิบัติงาน ASP.NET ใช้เท่านั้นเล็กน้อยมากกว่า 1 กิกะไบต์เนื่องจากการกระจายตัวสุขภาพตรวจสอบและหน่วยความจำ

ในระหว่างกระบวนการอัปโหลด ASP.NET โหลดแฟ้มทั้งหมดในหน่วยความจำก่อนที่ผู้ใช้สามารถบันทึกแฟ้มลงดิสก์ ดังนั้น กระบวนการอาจถังรีเคิลเนื่องจากการmemoryLimitคุณลักษณะขององค์ประกอบนั้นprocessModelแท็กในแฟ้ม Machine.config กระบวนการmemoryLimitแอตทริบิวต์ระบุเปอร์เซ็นต์ของหน่วยความจำกายภาพที่ดำเนินการของผู้ปฏิบัติงานของ ASP.NET สามารถ exhaust ก่อนที่กระบวนการถูก recycled โดยอัตโนมัติ recycling ป้องกันหน่วยความจำ leaks สาเหตุ ASP.NET ล้มเหลว หรือ การหยุดการตอบสนอง

นอกจากนี้ ปัจจัยอื่น ๆ เล่นสำหรับบทบาทในขนาดของแฟ้มสูงสุดที่สามารถสามารถอัปโหลด ปัจจัยเหล่านี้รวมถึงหน่วยความจำที่มีอยู่ เนื้อที่ว่างบนฮาร์ดดิสก์ที่พร้อมใช้งาน ความเร็วของตัวประมวลผล และการรับส่งข้อมูลเครือข่ายปัจจุบัน ด้วยการรับส่งปกติข้อมูลของแฟ้มที่มีการอัปโหลด Microsoft แนะนำให้ คุณใช้ขนาดแฟ้มสูงสุดในช่วงของเมกะไบต์ 10 ถึง 20 (MB) หากคุณอัปแทบไม่โหลดแฟ้ม ขนาดแฟ้มสูงสุดอาจเป็น 100 MB

หมายเหตุ:คุณสามารถอัปโหลดแฟ้มที่ใหญ่กว่า 100 MB ใน ASP.NET อย่างไรก็ตาม Microsoft แนะนำให้ คุณปฏิบัติตามขนาดอัปโหลดแฟ้มสูงสุดที่กล่าวถึงในบทความนี้ เมื่อต้องการกำหนดขนาดของแฟ้มโดยละเอียดเพิ่มเติม ทำปัญหาในการทดสอบบนคอมพิวเตอร์ที่คล้ายกับรายการที่จะใช้ในการผลิต

คุณอาจสังเกตเห็นข้อความแสดงข้อผิดพลาดต่อไปนี้หากคุณพบขนาดจำกัดของแฟ้มในระหว่างกระบวนการอัปโหลดแฟ้ม:
  • The page cannot be displayed.
  • แอพพลิเคชันเซิร์ฟเวอร์จะไม่พร้อมใช้งาน
    ในแฟ้มบันทึกของเหตุการณ์ เกิดข้อผิดพลาดจะเหมือนกับข้อความต่อไปนี้:

    หมายเลขผลิตภัณฑ์ aspnet_wp.exe (:PIDNumber) ถูก recycled เนื่องจากเกินกว่าปริมาณการใช้หน่วยความจำSizeLimitเมกะไบต์(เปอร์เซ็นต์เปอร์เซ็นต์ของ RAM ที่พร้อมใช้งาน)

  • ข้อยกเว้นชนิด thrown ถูก System.OutOfMemoryException
นอกจากนี้คุณอาจพบว่า uploads เกิดขึ้นช้ามาก ถ้าคุณดูขั้นตอนในตัวจัดการงานของ Windows Aspnet_wp.exe คุณจะสังเกตเห็นว่า ของเดลต้าหน่วยความจำเปลี่ยน โดยกิโลไบต์ 64 ทุก 1 ถึง 2 วินาที Depending on the size of the file, this delay may cause the ASP.NET worker process to recycle because of a responseDeadlock error.

คุณสมบัติ

หมายเลขบทความ (Article ID): 295626 - รีวิวครั้งสุดท้าย: 8 มกราคม 2554 - Revision: 4.0
ใช้กับ
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
Keywords: 
kbproductlink kbconfig kbprb kbservercontrols kbmt KB295626 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:295626

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com