ข้อผิดพลาดทั่วไปในโลกของ ASP คือ: ส่วนหัว HTTP ถูกเขียนไปยังเบราว์เซอร์ไคลเอนต์แล้ว การแก้ไขส่วนหัว HTTP ใด ๆ จะต้องทำก่อนที่จะเขียนเนื้อหาของหน้า บล็อกข้อผิดพลาดที่เกิดขึ้นจริงมีแนวโน้มที่จะมีลักษณะเช่นนี้:

ข้อผิดพลาดวัตถุการตอบสนอง 'ASP 0156: 80004005
ข้อผิดพลาดส่วนหัว
/index.asp บรรทัดที่ 22
ส่วนหัว HTTP ถูกเขียนไปยังเบราว์เซอร์ไคลเอ็นต์แล้ว การแก้ไขส่วนหัว HTTP ใด ๆ จะต้องทำก่อนที่จะเขียนเนื้อหาของหน้า

ก่อนสิ่งที่ทำให้เกิดข้อผิดพลาดนี้คืออะไร? มันเป็นสิ่งที่ถูกพูด คุณได้เขียนส่วนหัว HTTP ไว้แล้ว - เช่นคำสั่ง HTML หรือ HEAD หรือ BODY ตอนนี้คุณกำลังพยายามทำอย่างอื่น - อาจเป็นคำสั่ง response.redirect คุณไม่สามารถไปที่หน้าใหม่ในช่วงกลางของการเขียนหน้าเก่า

สถานการณ์ที่มีโอกาสมากที่สุดอันดับแรกคือคุณเขียนอะไรบางอย่างออกมาแล้วลองตอบกลับ หากคุณต้องการไปที่หน้าใหม่ให้ทำขั้นตอนการตัดสินใจของคุณก่อนที่คุณจะเริ่มเขียนอะไรลงบนหน้าจอ คุณไม่สามารถกระโดดผ่านการวาดหน้าได้ครึ่งทาง ทำการประมวลผลของคุณตัดสินใจว่าคุณต้องการไปที่อื่นหรือไม่และไปที่นั่นถ้าคุณต้องการ หากไม่ใช่ให้วาดหน้าเว็บที่คุณเปิดอยู่ คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับการใช้ Response.Redirect เพื่อ Change Pages

สาเหตุที่พบบ่อยที่สุดที่สองสำหรับสิ่งนี้เกิดขึ้นคือคุณหลอกปุ่มต่าง ๆ ใน IIS หากคุณเข้าไปใน Home Directory - การกำหนดค่า - ตัวเลือกแอปจะมีช่องทำเครื่องหมายเรียกว่า "Enable Buffering" โดยค่าเริ่มต้นควรเป็น ON เมื่อเปิดใช้งานหมายความว่ากระบวนการ ASP ของคุณเก็บสิ่งที่ทำงานจนกว่าจะถึงจุดสิ้นสุดจากนั้นส่งหน้าเต็มให้ผู้ใช้ เป็นวิธีที่มีประสิทธิภาพในการจัดการ ASP

อย่างไรก็ตามหากคุณปิดช่องทำเครื่องหมายนั้นคุณจะไม่สามารถเรียกคำสั่ง response.redirect เพื่อข้ามไปยังหน้าใหม่ได้ คุณต้องเริ่มจัดการกับปัญหาการบัฟเฟอร์ด้วยตนเอง หากคุณต้องการใช้ระเบียบนี้จริง ๆ โปรดอ่านวิธีการทำงานของบัฟเฟอร์ใน ASP

ทางออกที่ง่ายคือ:

* ปล่อยให้ช่องทำเครื่องหมายเปิดใช้งานการกำหนดบัฟเฟอร์เป็น ON เสมอ
* ใช้ response.redirect เสมอก่อนที่คุณจะเขียน HTML ใด ๆ

รู้เบื้องต้นเกี่ยวกับ ASP Ebook

ดาวน์โหลด ebook นี้เพื่อรับทุกสิ่งที่คุณจำเป็นต้องรู้เกี่ยวกับการเรียนรู้ ASP - ตั้งแต่แบบฝึกหัดทีละขั้นตอนไปจนถึงรายการฟังก์ชันโค้ดตัวอย่างข้อผิดพลาดทั่วไปและวิธีแก้ไขปัญหาและอีกมากมาย! 101 หน้า