ฉันได้ติดตั้งแอปพลิเคชันใหม่ภายใต้ IIS แอพใหม่มีกลุ่มแอพพลิเคชั่นเฉพาะเช่นเดียวกับแอพพลิเคชั่นอื่น ๆ ที่ติดตั้งบนเซิร์ฟเวอร์เดียวกัน มีเว็บไซต์หลักซึ่งมีกลุ่มแอพเฉพาะของตัวเองด้วย แอปพลิเคชันที่ปรับใช้ก่อนหน้านี้ทั้งหมดทำงานได้ดีภายใต้การกำหนดค่านี้ แต่แอปพลิเคชันใหม่ล่าสุดทำให้เกิดข้อผิดพลาด 403.18 เมื่อฉันพยายามเรียกดู
หากฉันเรียกดูจากเซสชัน RDP บนเซิร์ฟเวอร์ ฉันจะได้รับหน้าข้อผิดพลาดโดยละเอียดซึ่งรวมถึงข้อมูลนี้:
ข้อผิดพลาด HTTP 403.18 - ถูกห้าม
ไม่สามารถประมวลผลคำขอที่ระบุในกลุ่มแอปพลิเคชันที่
ได้รับการกำหนดค่าสำหรับทรัพยากรนี้บนเว็บเซิร์ฟเวอร์
สาเหตุที่เป็นไปได้มากที่สุด:
- ตัวกรอง ISAPI หรือโมดูลแบบกำหนดเองเปลี่ยน URL เพื่อรันในกลุ่มแอปพลิเคชันที่แตกต่างจาก URL ดั้งเดิม
- ส่วนขยาย ISAPI (หรือโมดูลที่กำหนดเอง) ใช้ ExecuteURL (หรือ ExecuteRequest) เพื่อเรียกใช้ในกลุ่มแอปพลิเคชันที่แตกต่างจาก
URL เดิม
- คุณมีหน้าแสดงข้อผิดพลาดแบบกำหนดเองที่อยู่ในกลุ่มแอปพลิเคชันหนึ่ง แต่ถูกอ้างอิงโดยเว็บไซต์ในกลุ่มแอปพลิเคชันอื่น เมื่อ
URL คือ - ประมวลผล ซึ่งกำหนดโดย IIS ว่าควรมี
ได้รับการประมวลผลในกลุ่มแอปพลิเคชันแรก ไม่ใช่กลุ่มอื่น
- เว็บไซต์มีการกำหนดค่าแอปพลิเคชันหลายรายการ แอปพลิเคชันคำขอนี้ได้รับการกำหนดค่าให้เรียกใช้ถูกตั้งค่าให้ทำงานในแอปพลิเคชัน
สระว่ายน้ำที่ไม่มีอยู่จริง
สิ่งที่คุณสามารถลอง:
- หากคุณมีแอปพลิเคชันที่พยายามประมวลผล URL ในกลุ่มแอปพลิเคชันอื่น (เช่น พยายามประมวลผลข้อผิดพลาดที่กำหนดเอง)
ตรวจสอบให้แน่ใจว่าทั้งสอง - ทำงานในพูลแอปพลิเคชันเดียวกันหาก
เหมาะสม.
- หากคุณพยายามประมวลผล URL ข้อผิดพลาดที่กำหนดเองซึ่งอยู่ในกลุ่มแอปพลิเคชันอื่น ให้เปิดใช้งานคุณลักษณะการเปลี่ยนเส้นทางข้อผิดพลาดที่กำหนดเอง
- ตรวจสอบว่ากลุ่มแอปพลิเคชันสำหรับแอปพลิเคชันนั้นมีอยู่
- สร้างกฎการติดตามเพื่อติดตามคำขอที่ล้มเหลวสำหรับรหัสสถานะ HTTP นี้ และดูว่ามีการเรียกใช้ ExecuteURL หรือไม่ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ
สร้างกฎการติดตามสำหรับคำขอที่ล้มเหลว คลิกที่นี่
ฉันเรียกใช้การติดตามคำขอที่ล้มเหลว แต่โดยพื้นฐานแล้ว การติดตามซ้ำกับข้อมูลเดิม และดูเหมือนจะไม่ได้ให้ข้อมูลเชิงลึกใดๆ ฉันยอมรับว่าฉันไม่เข้าใจทุกอย่างในไฟล์การติดตามนั้น
ฉันลองเปลี่ยนกลุ่มแอปพลิเคชันสำหรับไซต์รูทเป็นกลุ่มเดียวกันกับแอปพลิเคชันที่เพิ่งปรับใช้ สิ่งนี้จะล้างข้อผิดพลาด 403.18 ดังนั้นความแตกต่างในกลุ่มแอพระหว่างแอพและไซต์รูทดูเหมือนจะมีบางอย่างที่เกี่ยวข้อง อย่างไรก็ตาม แอปไม่โหลดและเบราว์เซอร์เพียงแค่ทำรายการไดเร็กทอรีในเนื้อหาเส้นทางจริง
สิ่งที่แปลกคือแอปพลิเคชั่นอื่น ๆ บนเซิร์ฟเวอร์นี้ทำงานได้ดี ความแตกต่างใหญ่ของแอปพลิเคชันใหม่คือใช้การรับรองความถูกต้องของ .NET 5 และ Azure ADส่วนรุ่นอื่นๆ ใช้การรับรองความถูกต้องของ .NET Core หรือ .NET Framework และ Windows รุ่นก่อนหน้า ฉันตรวจสอบแล้วว่าได้ติดตั้ง .NET 5 Hosting Bundle แล้ว
ฉันลองทำตามรายการ "สิ่งที่คุณลองได้" ในหน้าข้อผิดพลาดแล้ว แต่ดูเหมือนจะใช้ไม่ได้
มีขั้นตอนอื่นใดที่ฉันสามารถลองหรือเบาะแสที่อาจช่วยฉันค้นหาสาเหตุที่แท้จริงได้หรือไม่ ฉันยินดีที่จะให้รายละเอียดเพิ่มเติม แต่ฉันยังไม่แน่ใจว่ารายละเอียดใดที่เกี่ยวข้อง