ไม่สามารถอัปโหลดไฟล์แนบ Asp หรือมีการรายงานข้อผิดพลาดรันไทม์ของ Microsoft VBScript '800a0005' หรือพารามิเตอร์ที่ไม่ถูกต้อง: เมื่อวานนี้ ฉันสร้างระบบใหม่บนเซิร์ฟเวอร์ของบริษัท มันทำงานได้ดีบนเซิร์ฟเวอร์ก่อนหน้า ใช่ มันทำงานไม่ถูกต้องหลังจากที่ฉันทำซ้ำ ดังนั้นฉันจึง 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