Проблема IIS 7 и ASP MVC с точкой в строке запроса

#asp.net-mvc #iis #asp.net-mvc-routing

#asp.net-mvc #iis #asp.net-mvc-routing

Вопрос:

У меня проблема, из-за которой я отправляю адрес электронной почты для проверки (убедитесь, что он еще не использовался и является действительным адресом электронной почты). Теперь он отлично работал на Cassini, но теперь, когда я использую IIS7, он отказывается отображать маршрут.

URL-адрес будет выглядеть следующим образом:

http://localhost:23456/is/email/taken/test@test.com

Я включил отладчик маршрута, чтобы убедиться, что с маршрутом нет проблем, и если я удалю бит «.com» в конце, он работает нормально, и маршрут совпадает (хотя это недопустимый адрес электронной почты, поэтому он недействителен). Однако, если я оставлю .com или любое другое используемое расширение, отладчик маршрутов даже не отображается, что заставляет меня думать, что IIS даже не направляет трафик на ASP и ищет статический файл.

У кого-нибудь еще было это раньше? и если да, то как вы ее решаете?

Комментарии:

1. Я использую IIS Express, и, похоже, он работает нормально. Вы также пробовали использовать IIS Express?

2. Я не получаю сообщение об ошибке, просто пустая страница, проверил наличие журналов IIS, но не смог их найти. Не пробовал IIS Express

Ответ №1:

Хорошо, IIS может обрабатывать это как файл с расширением, которое заблокировано или сопоставлено обработчику, который не является MVC. Сначала проверяется, есть ли физический файл на диске, поэтому некоторая обработка URL-адреса выполняется не только механизмом MVC. Есть ли у вас конфигурации, которые защищают / отклоняют некоторые расширения?

Комментарии:

1. Я не устанавливал никаких пользовательских настроек в IIS, это по умолчанию, однако web.config для этого проекта загружает пользовательский модуль, который обрабатывает запросы на основе CORS, но даже в этом случае все, что он делает, это просто возвращает некоторые дополнительные заголовки.