สำหรับ URL ใด ๆ ที่มีเครื่องหมายบวก (+) ใน URL พื้นฐาน (ไม่ใช่การสอบถาม), IIS7 และ IIS7.5 (Windows Server 2008 และ 2008 R2) จะไม่ปรากฏขึ้นเพื่อส่งต่อ URL ไปยังตัวจัดการเริ่มต้นบนแอปพลิเคชัน ASP.NET . ผมเริ่มสังเกตเห็นปัญหากับที่กำหนดเอง HTTP จัดการบนแต่ฉันมีปัญหาเดียวกันกับ*.html
*.aspx
IIS6 (Server 2003) ไม่มีปัญหากับ URL เดียวกันนี้
เมื่อต้องการทำซ้ำปัญหาในไซต์ ASP.NET ฉันสร้างชุดของไฟล์ ASPX ที่ทำ Response.Write ง่ายๆด้วยชื่อต่าง ๆ :
- test_something.aspx
- test_some + thing.aspx
- test_some things.aspx
ไฟล์ที่สามเป็นการทดสอบเพื่อดูว่า IIS7 [.5] กำลังใช้เครื่องหมายบวกเป็นช่องว่างหรือไม่ (เหมือนในการสอบถาม) ดูเหมือนจะไม่เป็นเช่นนั้น เมื่อไฟล์เหล่านี้เข้าแทนที่http://somehost/test_some+thing.aspx
หรือhttp://somehost/test_some%2bthing.aspx
จะทำงานได้ดีใน IIS6 แต่ 404 ใน IIS7 / IIS7.5 ก่อนที่จะไปที่ตัวจัดการ ASP.NET ใด ๆ มีการกำหนดค่าบางอย่างใน IIS7 / 7.5 ที่ฉันหายไปเพื่อ "ดู" เครื่องหมายบวกใน URL โดยไม่พลาดส่วนขยายสุดท้ายที่ใช้เพื่อกำหนดตัวจัดการ HTTP หรือไม่
\+
?