HTTP 500: Internal Server Error

ในการใช้งานหน้าเว็บที่ใช้ ASP เป็นคำสั่งในการประมวลผลนั้น หากได้พบข้อความแสดงความผิดพลาดว่า 

 HTTP 500.100 - Internal Server Error - ASP

Internet Information Services

 แสดงว่ามีปัญหาการทำงานที่ผิดพลาดจากเครื่องให้บริการเว็บ อาจเป็นสาเหตุมาจาก การทำงานของคำสั่ง ASP เอง หรือ อาจจะเป็นความผิดพลาดในการเชื่อมต่อกับฐานข้อมูล หรือคำสั่งในการสืบค้น(SQL code) ก็ได้

 นั่นหมายความว่า หากผู้ใช้งาน  หรือผู้รับบริการ ได้เจอกับข้อความผิดพลาดนี้เข้า ก็ไม่ต้องพยายามแก้ไขปัญหาที่ตัวเครื่องคอมพิวเตอร์ ของเราแต่ประการใด อย่างมากหากมีความจำเป็นจะต้องใช้งานผ่านหน้าเว็บนี้ หรือผลกระทบกับท่าน แล้วต้องการจะขจัดปัญหานี้ออกไป สิ่งที่จะทำได้ก็คงเป็นการ หาทางแจ้งให้กับผู้ดูแลหน้าเว็บ(Webmaster) นั้นทราบเพื่อทำการแก้ไขเท่านั้น 

 แต่ในกรณีที่ท่านเป็นผู้ดูแลหน้าเว็บนี้เอง หรือผู้ใช้ทั่วไปที่อยากรู้ว่าเกิดอะไรขึ้นแน่ ก็มาลองศึกษากันดูได้ครับ

 เริ่มจากการบอกให้เว็บบราวเซอร์ ยอมสารภาพความจริงมาให้ทราบตรง ๆ ว่าเกิดอะไรขึ้นแน่ โดยปรับแก้ตัวเลือกของเว็บบราวเซอร์

ดังนี้ครับ

- คลิกที่รายการคำสั่ง(Menu bar) Tools > Internet Options...

- คลิกแทป [Advanced]

- ภายใต้หัวข้อย่อย [Browsing]

- คลิกเอาเครื่องหมายในช่องสี่เหลี่ยมหน้าข้อความ "Show Friendly HTTP Error Messages" ออกไป

  (ไม่ต้องแสดงข้อความผิดพลาดอย่างเป็นกันเอง แต่ไม่ชัดแจ้ง)

<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> - คลิกปุ่ม [Apply] และ [OK]</p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;">  - Refresh หน้าจอเว็บ ด้วยปุ่ม  Ctrl + F5 (กดปุ่ม Ctrl ค้างไว้ แล้วเคาะปุ่ม F5 แล้วปล่อยทุกปุ่ม)</p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;">คราวนี้หน้าเว็บจะแสดงข้อความผิดพลาดที่แท้จริง ออกมาให้ทราบ(โดยไม่ปิดบัง)</p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> ถ้ายังไม่แสดง ลองปิดบราวเซอร์ แล้วปิดใหม่</p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;">     ข้อความแสดงความผิดพลาดที่แสดงออกมาคราวนี้ จะระบุบรรทัด หรือประโยคคำสั่งที่ผิดพลาดออกมาให้ทราบอย่างแน่ชัด จากนั้นผู้ดูแลหน้าเว็บก็จะต้องเข้าไปยังแฟ้มที่เก็บคำสั่งในหน้านั้นแล้วทำการแก้ไขตามข้อความที่แจ้งให้ทราบมานั้น</p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> ซึ่งอาจเป็นไปได้ว่า การที่เกิดความผิดพลาดนี้ไม่ได้เกิดจากความผิดพลาดของข้อความคำสั่งในแฟ้มนั้นโดยตรง แต่เกิดจาก</p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;">ไฟล์ฐานข้อมูลหายไป หรือการเชื่อมโยงนั้นมีความผิดพลาดเกิดขึ้น ก็จะต้องพิจารณาแก้ไขตามอาการไปครับ</p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;">กรณีที่เคยพบก็คือ ผู้เขียนหน้าเว็บนั้น ได้เขียนโปรแกรม ASP เชื่อมต่อฐานข้อมูลกับไฟล์ที่สร้างด้วยโปรแกรม MS Access (.mdb) </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;">  จากนั้นมีการนำไฟล์นั้นไปปรับปรุงแก้ไข แล้วเปลี่ยนเป็นชื่อใหม่ เมื่อมีการใช้งานหน้าเว็บก็ทำให้เกิดข้อความผิดพลาดนี้ขึ้น</p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;">แม้จะแก้ไขปัญหาโดยการแก้ไขชื่อไฟล์ในโปรแกรม หรือแก้ไขชื่อไฟล์ของฐานข้อมูลแล้ว หากยังไม่สามารถทำงานได้เป็นปกติ</p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;">ให้ลองแก้ไขโดยการ  กำหนดเครื่องให้บริการเว็บ สร้างการเชื่อมกับไฟล์ mdb นั้นผ่าน ODBC(Open Database Connectivity)</p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> (วิธีการทำอย่างไรนั้น webmaster น่าจะพอทำได้กันแล้ว)</p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;">  </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;">จากนั้นลองทดสอบการทำงานดูใหม่(Refresh)  หากใช้งานได้แล้ว แม้จะไปลบการเชื่อมต่อไฟล์ผ่าน ODBC ที่เพิ่งสร้างไว้ออกไป ก็จะยังทำงานได้อยู่ครับ</p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;">เพราะความผิดพลาดที่เกิดขึ้นในครั้งแรก หลังจากไฟล์ฐานข้อมูลถูกลบ หรือเปลี่ยนชื่อไปนั้น ทำให้แผนที่เส้นทาง(path)การเชื่อมต่อระหว่างไฟล์ฐานข้อมูลกับหน้าเว็บถูกทำลายไปด้วย</p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;">การเชื่อมต่อ ODBC นั้นจะเป็นผู้นำทาง(navigator) เพื่อสร้างแผนที่เส้นทางขึ้นมาใหม่อีกครั้งหนึ่ง ที่แม้จะนำผู้นำทางออกไป แต่เส้นทางก็ยังอยู่ จึงทำให้สามารถใช้งานต่อไปได้</p>