เมื่อเขียนโปรแกรมโดยใช้องค์ประกอบ XMLHTTT คุณจะพบ "MSXML3.DLL ERROR '800C0005' ระบบไม่พบทรัพยากรที่ระบุ" มีคำอธิบายมากมายสำหรับสาเหตุของข้อผิดพลาดนี้บนอินเทอร์เน็ต โดยทั่วไปแล้วมันเกิดจากการอนุญาตให้ใช้ไฟร์วอลล์หรือพอร์ตของสถานี UDP และยังมีการกล่าวถึงวิธีการแก้ปัญหาที่สอดคล้องกัน บางครั้งอาจไม่ใช่กรณี ในความเป็นจริงเหตุผลหลักสำหรับคำอธิบายข้อผิดพลาดคือ "ระบบไม่พบทรัพยากรที่ระบุ" ข้อผิดพลาดนี้เกิดขึ้นเมื่อมีการเรียกวิธีการเปิดขององค์ประกอบ XMLHTTT แล้วใช้วิธีการส่ง เมื่อพารามิเตอร์ URL ของวิธีการเปิดไม่สามารถเข้าถึงได้ข้อผิดพลาดของ 8000005 จะเกิดขึ้น และเมื่อเกิดข้อผิดพลาดนี้แอปพลิเคชันจะสิ้นสุดลงและการดำเนินการจะไม่สามารถดำเนินการต่อได้ โปรแกรมส่วนใหญ่เขียนเช่นนี้:
FunctionFunctionName (Pararm ... )
dimhttp
sethttp = server.createObject ("msxml2.xmlhttp.4.0")
withhttp
.Open "get", httpurl, false
.ส่ง
จบลงด้วย
ifhttp.readystate <> 4 จากนั้น
sethttp = ไม่มีอะไร
-
exitfunction
endif
endfunction
โปรแกรมส่วนใหญ่ใช้แอตทริบิวต์ ReadyState ของ XMLHTTP เพื่อกำหนดสถานะการส่งคืนจากเซิร์ฟเวอร์ ในความเป็นจริงสิ่งนี้อาจไม่เหมาะสม หลายครั้งที่การใช้แอตทริบิวต์ ReadyState เพื่อตัดสินไม่สามารถตรวจจับข้อผิดพลาดในการไหลของโปรแกรมได้อย่างแท้จริง เมื่อพบข้อผิดพลาดโปรแกรมจะยังคงถูกยกเลิก ในความเป็นจริงการปรับเปลี่ยนรหัสข้างต้นสามารถข้ามข้อผิดพลาดที่พบได้อย่างสมบูรณ์ระหว่างการดำเนินการของโปรแกรมและทำให้โปรแกรมทำงานอยู่ แก้ไขรหัสดังนี้:
FunctionFunctionName (Pararm ... )
dimhttp
sethttp = server.createObject ("msxml2.xmlhttp.4.0")
withhttp
.Open "get", httpurl, false
.ส่ง
จบลงด้วย
onerrorresumenext
ifhttp.status <> 200 จากนั้น
sethttp = ไม่มีอะไร
-
exitfunction
endif
endfunction
เมื่อเมธอดส่งสร้างข้อผิดพลาดค่า ReadyState อาจเป็น 4 แต่ค่าการส่งคืนของสถานะจะต้องไม่เป็น 200 ฮ่าฮ่าฉันได้ติดตาม ReadeState และสถานะหลายครั้งเพื่อให้ได้ผลลัพธ์ก่อนหน้านี้ อาจมีข้อผิดพลาดและฉันยังไม่ได้สังเกต
ฉันหวังว่าโซลูชันโปรแกรมข้างต้นจะช่วยคุณได้ !! หากคุณมีทางออกที่ดีกว่าสำหรับเพื่อนของคุณโปรดบอกฉัน