การแก้ไขข้อผิดพลาด 404 ในแอปพลิเคชัน ASP.NET

คุณเพิ่งติดตั้ง Service Pack 1 สำหรับ .NET 3.5 และพบว่าแอปพลิเคชัน ASP.NET ของคุณเริ่มแสดงข้อผิดพลาด 404 Page Not Found หรือไม่? คุณไม่ใช่คนเดียว ปัญหานี้เป็นปัญหาที่พบได้บ่อยซึ่งอาจเกิดขึ้นได้จากหลายสาเหตุ โดยเฉพาะเมื่อมีการเปลี่ยนแปลงในกรอบงานที่อยู่เบื้องหลัง ในโพสต์นี้เราจะสำรวจสาเหตุที่เป็นไปได้และให้แนวทางในการแก้ไขปัญหาเหล่านี้เพื่อลดความสับสนให้กับคุณ

เข้าใจปัญหา

การติดตั้งการอัปเดต .NET อาจทำให้เกิดพฤติกรรมที่ไม่คาดคิดในแอปพลิเคชันเว็บ ในกรณีนี้ เซิร์ฟเวอร์หนึ่งทำงานได้อย่างราบรื่นหลังจากการอัปเดต ในขณะที่อีกเซิร์ฟเวอร์ไม่สามารถตอบสนองต่อคำขอ ASP.NET ได้อย่างถูกต้อง หน้าแบบสแตติกยังคงทำงานได้อย่างถูกต้อง ซึ่งบ่งชี้ว่าการตั้งค่าหรือ ASP.NET pipeline อาจมีปัญหา

แนวทางแก้ไขเพื่อแก้ไขข้อผิดพลาด 404

เพื่อให้สามารถวิเคราะห์และแก้ไขปัญหานี้ได้อย่างมีประสิทธิภาพ เราจะตรวจสอบและดำเนินการในหลายขั้นตอน

1. ลงทะเบียน ASP.NET Pipeline

สิ่งแรกที่ต้องตรวจสอบคือการลงทะเบียน runtime ASP.NET กับ IIS อย่างถูกต้อง

  • เรียกใช้ ASPNET_REGIIS -i: คำสั่งนี้จะติดตั้งกรอบงาน ASP.NET ใหม่และลงทะเบียนกับ IIS คุณสามารถทำได้โดย:
    • เปิดพรอมต์คำสั่งในฐานะผู้ดูแลระบบ

    • ไปที่ไดเรกทอรีการติดตั้งกรอบงาน .NET

    • รันคำสั่ง:

      aspnet_regiis -i
      

2. ตรวจสอบไฟล์ app_offline.htm

หลังจากการอัปเดต บางครั้งไฟล์ app_offline.htm อาจถูกทิ้งไว้ในไดเรกทอรีหลักของแอปพลิเคชันโดยไม่ได้ตั้งใจ ไฟล์นี้ใช้เพื่อบ่งบอกว่าแอปพลิเคชันออฟไลน์ชั่วคราว

  • ลบ app_offline.htm: ตรวจสอบให้แน่ใจว่าไฟล์นี้ถูกลบออกจากไดเรกทอรีแอปพลิเคชันแล้ว

3. ใช้ Fiddler เพื่อวิเคราะห์คำขอ

Fiddler เป็นเครื่องมือที่ทรงพลังสำหรับติดตามคำขอและคำตอบ HTTP:

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

4. ยืนยันว่า ASP.NET เปิดใช้งานใน IIS

ตรวจสอบการตั้งค่าใน IIS:

  • ไปที่ IIS Management Console:
    • ไปที่เซิร์ฟเวอร์ของคุณ เปิด IIS Manager และมองหาส่วน “Web Service Extensions”
    • ตรวจสอบว่า ASP.NET ถูกตั้งค่าให้เปิดใช้งาน ตรวจสอบให้แน่ใจว่าหมวดหมู่ที่เกี่ยวข้องทั้งหมดตามเวอร์ชันของกรอบงานได้รับการอนุญาต

การตรวจสอบเพิ่มเติม:

  • ตรวจสอบให้แน่ใจว่าแอปพลิเคชันเว็บกำลังทำงานกับเวอร์ชันที่ถูกต้องของกรอบงาน .NET
  • พิจารณาตรวจสอบบันทึกเหตุการณ์เพื่อค้นหาข้อความแสดงข้อผิดพลาดที่เกี่ยวข้องซึ่งอาจให้ข้อมูลเพิ่มเติมเกี่ยวกับปัญหา

สรุป

การติดตั้งการอัปเดตเช่น Service Pack 1 สำหรับ .NET 3.5 อาจทำให้เกิดปัญหาที่ไม่คาดคิดกับแอปพลิเคชัน ASP.NET ของคุณ อย่างไรก็ตาม ด้วยการตรวจสอบการลงทะเบียนของ ASP.NET pipeline อย่างมีระเบียบ การค้นหาไฟล์ app_offline.htm ที่ไม่เกี่ยวข้อง การใช้งานเครื่องมือเช่น Fiddler และการทำให้แน่ใจว่า ASP.NET ได้รับการเปิดใช้งานใน IIS คุณสามารถวินิจฉัยและแก้ไขปัญหาเหล่านี้ได้อย่างมีประสิทธิภาพ ด้วยการใช้แนวทางแก้ไขเหล่านี้ คุณสามารถทำให้แอปพลิเคชันของคุณกลับมาทำงานได้ตามปกติ ปราศจากข้อผิดพลาด 404 Page Not Found

หากคุณมีคำถามหรือแนวทางแก้ไขเพิ่มเติมที่ได้ผลสำหรับคุณ อย่าลังเลที่จะให้ความคิดเห็นด้านล่าง!