URL-адреса MVC .NET не маршрутизируются с использованием RouteCollection

Мы используем MVC .NET и класс RouteCollection для маршрутизации URL-адресов в нашем веб-приложении. Обычно это работает , пока мы не передадим URL-адрес, содержащий текст «PRN», в любом месте внутри URL-адреса. Когда это произойдет, маршрутизация не произойдет, и клиенту будет возвращено сообщение об ошибке 400 Page Not Found. Это похоже на то, что что-то выдает ошибку еще до того, как будет проведена консультация с коллекцией маршрутизации, потому что маршрут, который должен пройти URL-адрес, никогда не затрагивается (под этим я подразумеваю, что точка останова базового кода никогда не срабатывает, хотя тот же самый URL-адрес без строки "PRN" "достигнет точки останова).

Поэтому я подумал, что это может быть проблема проверки страницы, что, возможно, Microsoft решила выбросить исключения, когда URL-адрес содержит фразу «PRN», потому что это похоже на «печать» или «порно», но если бы это было так, мы бы увидели Ошибка «От клиента обнаружено потенциально опасное значение Request.Form», но мы этого не делаем.

Изучение этого было проблемой, потому что Google считает, что PRN должен возвращать результаты для "порно", что означает, что 98% моих результатов поиска недействительны (и неуместны). Использование предложения "-porn" в Google снижает ваши результаты примерно до 10-30 обращений, и все это бесполезно.

Кто-нибудь знает, почему URL-адрес, содержащий строку «PRN», не маршрутизируется должным образом? Если у вас есть какие-либо сообщения или темы, на которые можно указать меня, это было бы здорово (опять же, Google меня подвел).


person Bryce    schedule 15.06.2011    source источник
comment
Не могли бы вы показать маршруты и URL-адрес, который вы пытаетесь открыть.   -  person AD.Net    schedule 15.06.2011
comment
Я должен был упомянуть, что это веб-сервис. Итак, URL-адрес похож на loremepsum / PRN / loremepsum, и он возвращает: Описание: HTTP 404. Ресурс, который вы ищете (или одна из его зависимостей), мог быть удален, изменилось его имя или временно недоступен. Просмотрите следующий URL-адрес и убедитесь, что он написан правильно. Запрошенный URL: / loremepsum / PRN / loremepsum   -  person Bryce    schedule 25.06.2011
comment
Что ж, после некоторого поиска в Интернете я нашел статью, которая, казалось, ответила для меня на вопрос. Подводя итог, можно сказать, что проблема в том, что определенные расширения файлов зарезервированы в .NET, и поэтому определенные URL-адреса всегда будут давать сбой, потому что .NET пытается найти файл, который не существует. ссылка   -  person Bryce    schedule 05.07.2011
comment
Если кому-то интересно, это решит проблему: ‹httpRuntime relaxedUrlToFileSystemMapping = true /›, как ответили здесь: stackoverflow.com/questions/987105/   -  person Bryce    schedule 06.07.2011