บทความนี้จะแนะนำวิธีการอื่นสำหรับการอนุญาตที่ไม่เพียงพอของฟังก์ชันการย้ายไฟล์ ASP บทความนี้จะแนะนำวิธีการอื่นก่อน จากนั้นจึงค้นหาสาเหตุที่แท้จริงที่เพื่อนๆ ต้องการสามารถอ้างอิงถึงได้
ฉันกำลังทำโปรเจ็กต์ในปัจจุบัน ซึ่งก็คือการเขียนคำสั่งเพื่อย้ายไฟล์ทั้งหมดในไดรฟ์ D ไปยังไดรฟ์ E เป็นการดีที่จะทดสอบในสภาพแวดล้อม XP ภายในเครื่อง
อย่างไรก็ตาม หลังจากวางไว้บนเซิร์ฟเวอร์ Windows 2003 ระบบจะแจ้งว่าสิทธิ์ไม่เพียงพอ
ไดเร็กทอรีเว็บไซต์ IIS ของฉันอยู่ในไดรฟ์ D และไดรฟ์ E เป็นเพียงโวลุ่มที่เพิ่มเข้ามาใหม่ บางไฟล์มีขนาดใหญ่มากและมีจำนวนมากมาย แต่ไดรฟ์ D ยังไม่เพียงพอ ฉันจึงคิดกลยุทธ์นี้ขึ้นมา
หลังจากค้นหาใน Baidu แล้ว ปัญหามากมายเหล่านี้ไม่ได้มีอะไรมากไปกว่าการเพิ่มสิทธิ์ของไดรฟ์ E หรือการใช้ไดรฟ์ E เป็นไดเร็กทอรีเสมือน
แต่มันใช้งานไม่ได้ และการแจ้งเตือนยังคงอยู่ ข้อแตกต่างเพียงอย่างเดียวคือฉันใช้ไดนามิกวอลุ่ม ในขณะที่ XP เป็นโวลุ่มพื้นฐาน ฉันไม่ต้องการเปลี่ยนระดับเสียง
ในที่สุดก็พบวิธีการดังต่อไปนี้:
เมื่อใช้ movefile ของ fso จะมีสิทธิ์ไม่เพียงพอ ดังนั้นจึงไม่สามารถดำเนินการโค้ดได้
ดังนั้นให้ใช้ copyfile แล้วลบไฟล์เพื่อหลีกเลี่ยงปัญหาที่ไม่จำเป็น
ตอนนี้:
คัดลอกรหัสรหัสดังต่อไปนี้:
ตั้งค่า fso=CreateObject("scripting.filesystemobject")
fso.MoveFile "เส้นทางไฟล์", "เป้าหมาย"
สิ่งนี้จะทำให้เกิดปัญหา
ใช้:
คัดลอกรหัสรหัสดังต่อไปนี้:
ตั้งค่า fso=CreateObject("scripting.filesystemobject")
fso.CopyFile "เส้นทางของไฟล์", "เป้าหมาย"
fso.DeleteFile "เส้นทางไฟล์"
วิธีนี้ช่วยแก้ไขปัญหาได้อย่างเด็ดขาด คัดลอกได้แต่ย้ายไม่ได้
04.30น. อัพเดต
หลังจากซ่อมแซมบางอย่างปรากฎว่าไม่ใช่ปัญหากับการอนุญาตของไดรฟ์ E แต่เป็นปัญหาเกี่ยวกับการอนุญาตของไดรฟ์ D นั่นคือปัญหาเกี่ยวกับการอนุญาตของไดเร็กทอรีเว็บไซต์ IIS
เพิ่มบัญชีแขกทางอินเทอร์เน็ตลงในไดรฟ์ D นั่นคือเพิ่มบัญชีที่ขึ้นต้นด้วย IUSR_ บัญชีนี้เป็นบัญชี IIS
จากนั้นการใช้ MoveFile ก็ไม่มีปัญหา
หากคุณต้องการย้ายหรือลบไฟล์ สิ่งแรกที่คุณควรตรวจสอบคือสิทธิ์ของไฟล์ต้นฉบับ ไม่ใช่สิทธิ์ของไฟล์เป้าหมาย
บทช่วยสอนบนอินเทอร์เน็ตเป็นอันตรายอย่างยิ่ง