ไม่สามารถอัปโหลดสิ่งที่แนบมากับ Asp หรือมีการรายงานข้อผิดพลาดรันไทม์ของ Microsoft VBScript '800a0005'
เมื่อวานฉันแก้ไขระบบบนเซิร์ฟเวอร์ของบริษัท แต่ฉันพบปัญหาที่ไม่สามารถอัปโหลดไฟล์แนบ Asp ได้ ก่อนหน้านี้มันทำงานได้ดีบนเซิร์ฟเวอร์ แต่มันไม่ทำงานอย่างถูกต้องหลังจากทำซ้ำ ดังนั้นฉันจึง googled และ baidued และ ฉันจะส่งวิธีแก้ปัญหาด้านล่างไปให้คุณเพื่อช่วยฉันในปัญหานี้ เพื่อนที่มีปัญหาควรหลีกเลี่ยงการออกนอกเส้นทาง:
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 (เวอร์ชันของ Framework จะแตกต่างออกไป ดังนั้นให้ป้อนไดเร็กทอรีของเวอร์ชันที่คุณใช้ ) ค้นหา httpruntime และเปลี่ยนค่าของ maxRequestLength เป็นค่าที่เหมาะสมในบรรทัดนี้ เช่น หากคุณต้องการ 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 ส่งกลับค่าสตริงซึ่งมีอักขระที่เกี่ยวข้องกับรหัสอักขระที่ระบุ
ไวยากรณ์ที่เกี่ยวข้อง: Chr(charcode) พารามิเตอร์ charcode ที่จำเป็นคือ Long ใช้เพื่อระบุอักขระบางตัว หมายเหตุ: ตัวเลขระหว่าง 0 ถึง 31 จะเหมือนกับรหัส ASCII มาตรฐานที่ไม่พิมพ์
ตัวอย่างเช่น Chr(10) ส่งคืนอักขระขึ้นบรรทัดใหม่ ช่วงปกติของรหัสอักขระคือ 0 – 255 อย่างไรก็ตาม ในระบบ DBCS ช่วงที่แท้จริงของรหัสอักขระคือ -32768 ถึง 65535 หมายเหตุ: ฟังก์ชัน ChrB ทำงานกับข้อมูลไบต์ที่อยู่ในสตริง ChrB ส่งคืนไบต์เดียวเสมอ แทนที่จะส่งคืนอักขระซึ่งอาจเป็นหนึ่งหรือสองไบต์ ฟังก์ชัน ChrW ส่งคืนสตริงที่มี Unicode บนแพลตฟอร์มที่ไม่รองรับ Unicode ฟังก์ชันการทำงานจะเหมือนกับฟังก์ชัน Chr
ดังนั้นเพียงแทนที่ chr ในบรรทัดข้อผิดพลาดบรรทัด 75 ของโค้ด: stemp=stemp&chr(AscW(ChrB(AscB(upfile_5xSoft_Stream.Read(1)))&ChrB(c))) ด้วย chrw