Для будь-якої 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 thing.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?
\+
?