เมื่อวานนี้ฉันจัดระบบใหม่สำหรับเซิร์ฟเวอร์ของ บริษัท เมื่อฉันพบไฟล์แนบ ASP ที่ไม่สามารถอัปโหลดได้ฉันใช้มันบนเซิร์ฟเวอร์มาก่อน แต่มันจะผิดปกติถ้ามันเป็นสีใหม่ ดังนั้นฉันจึงให้วิธีแก้ปัญหากับ Google และ Baidu ฉันจะส่งโซลูชันต่อไปนี้เพื่อช่วยเพื่อนที่พบปัญหานี้หลีกเลี่ยงการออกนอกเส้นทาง:
1. ปัญหาการอนุญาต
โปรดตรวจสอบให้แน่ใจว่าโฟลเดอร์ "ผู้ใช้เกสต์" ของไฟล์ที่คุณอัปโหลดมีสิทธิ์เขียนบางรายการจะถูกเก็บไว้ในฐานข้อมูลและพวกเขายังต้องได้รับอนุญาตให้แก้ไข
2. ขีด จำกัด ขนาดไฟล์
IIS 6 ด้วยเหตุผลด้านความปลอดภัยคำขอสูงสุดเริ่มต้นคือ 200K (นั่นคือขีด จำกัด ข้อมูลการส่งสูงสุดคือ 200KBYTE, 204800BYTE)
สารละลาย:ปิดบริการผู้ดูแลระบบ IIS
เปิด/windows/system32/inesrv/metabase.xml
ปรับเปลี่ยนค่าของ aspmaxRequestEntityAllowed เป็นสิ่งที่คุณต้องการค่าเริ่มต้นคือ 204800
เริ่มบริการผู้ดูแลระบบ IIS
หลังจากการแก้ไขคุณต้องแก้ไขไฟล์ machine.config
ใน asp.net ขนาดเริ่มต้นของไฟล์ที่อัปโหลดคือ 4096 kb ซึ่งเป็น 4m แต่คุณสามารถเปลี่ยนข้อมูลนี้ใน web.config วิธีที่ใช้กันมากที่สุดคือการปรับเปลี่ยนไฟล์ machine.config โดยตรงใน c: /windows/microsoft.net/framework/v1.1.4322/config ไดเรกทอรี (เวอร์ชันเฟรมเวิร์กจะแตกต่างกัน ตัวอย่างเช่นหากคุณต้องการ 8M ให้ป้อน 8192
3. ระบบจีนติดตั้งแพทช์ภาษาอังกฤษสำหรับ IIS
หลังจากการตรวจสอบพบว่าโฮสต์ที่ลูกค้าใช้เป็นเวอร์ชั่นภาษาจีนของ Windows 2003 และต่อมาเปลี่ยนเป็น Windows เวอร์ชันภาษาอังกฤษและเกิดข้อผิดพลาด
โดยทั่วไปปัญหาเดียวกันบางครั้งเกิดขึ้นหลังจากระบบได้รับการอัพเกรดเป็น IIS หรือแก้ไข เราเพียงแค่ต้องเพิ่มโค้ดด้านหน้าของไฟล์ ASP
<!-ต้องเป็นกำปั้นใน ASP->
< % @lcid = 4100 %>
4. ปัญหาภาษา
ตั้งค่าการตั้งค่าระดับภูมิภาคเป็น [จีน] ในแผงควบคุม
5. วันที่ปัญหาเวลา
ในแผงควบคุมตั้งค่ารูปแบบเวลาเป็น: H: MM: SS ในแผงควบคุม "เวลาวันที่" และเปลี่ยนโซนเวลาเป็นปักกิ่ง (เหตุผลในการเปลี่ยนสิ่งนี้เป็นเพราะไฟล์แนบบางตัวถูกอัปโหลดด้วยชื่อเวลาหากรูปแบบเวลาไม่ถูกต้องมันจะทำให้โปรแกรมรายงานข้อผิดพลาด)
6. ชื่อหรือเส้นทางภาษาจีนที่ใช้โดยไฟล์ที่อัปโหลด
หากคุณใช้ ASP เพื่ออัปโหลดโดยไม่มีส่วนประกอบเนื่องจากไม่ได้รับการสนับสนุนภาษาจีนคุณต้องตรวจสอบว่าภาษาจีนรวมอยู่ในเส้นทางการอัปโหลดหรือไม่
7. รายงาน "ข้อผิดพลาดรันไทม์ของ Microsoft VBScript '800A0005' การเรียกใช้โพรซีเดอร์หรือพารามิเตอร์ที่ไม่ถูกต้อง: 'CHR'" ข้อผิดพลาด (ปัญหาของฉันเป็นปัญหาประเภทนี้)
ข้อผิดพลาดรันไทม์ของ Microsoft VBScript '800A0005' การเรียกใช้หรืออาร์กิวเมนต์ที่ไม่ถูกต้อง: 'CHR' /ADMIN/INC/upload.inc,
บรรทัดที่ 75 ข้อผิดพลาดนี้อาจเป็นเพราะเซิร์ฟเวอร์เป็นภาษาอังกฤษเนื่องจากฟังก์ชั่น CHR ส่งคืนสตริงที่มีอักขระที่เกี่ยวข้องกับรหัสอักขระที่ระบุ