Веб.Маршрутизация для корневого каталога сайта или домашней страницы

StackOverflow https://stackoverflow.com/questions/2564089

Вопрос

Я выполняю некоторую работу с Web.Маршрутизация, используя ее для создания удобных URL-адресов и приятных Rest-подобных интерфейсов для сайта, который по сути визуализируется одним IHttpHandler.Веб-форм нет, обработчик генерирует весь html / json и записывает его как часть запроса процесса.

Это хорошо работает, например, для таких вещей, как /Sites/Accounting, но я не могу заставить его работать для корневого каталога сайта, т.е.'/'.

Я попытался зарегистрировать маршрут с пустой строкой, с 'default.aspx' (это пустой aspx-файл, который я храню в своей корневой папке, чтобы работать с cassini и iis).Я явно установил для RouteExistingFiles значение false, но что бы я ни делал при нажатии на корневой URL, он по-прежнему открывает default.axpx, у которого нет кода, от которого он наследуется, и содержит простой тег h1, чтобы показать, что я его нажал.

Я не хочу изменять файл по умолчанию для перенаправления на желаемый маршрут, я просто хочу эквивалент маршрута по умолчанию, который применяется, когда другие маршруты не найдены, аналогично MVC.

Для справки, предыдущая версия сайта не использовала Web.Маршрутизацию, но имела обработчик, упомянутый в web.config, который был вполне способен перехватывать запросы к root или default.aspx.

Технические характеристики:ASP.NET 3.5sp1, C #, никаких webforms, MVC или openrasta.Простые старые IHttpHandlers.

Это было полезно?

Решение

Исправил мою собственную проблему:проблема в интегрированном веб-сервере Cassini или что-то в этом роде.Похоже, что он плохо справляется с маршрутизацией и по умолчанию просто возвращает файл default.aspx или, если он отсутствует, показывает список каталогов.

Использование IIS с виртуальным каталогом работает нормально, но раздражает (расстраивает разработчиков кода, потому что им нужно настраивать новые виртуальные каталоги, когда они открывают мое приложение, и загрязняет мой собственный экземпляр IIS.Бах.Вероятно, что я сделаю на данный момент, однако, или настрою новое приложение вручную, чтобы я мог использовать путь только к хосту домена, подобный тому, который будет существовать в live.

Альтернативой является использование обновленной версии cassini, увиденной здесь, который работает, если файл aspx по умолчанию отсутствует, но я еще не придумал, как интегрировать его с Visual Studio.Я был бы признателен за любую помощь, но это не является большим приоритетом, учитывая, что у меня есть обходные пути.

Другие советы

Я понимаю, что это очень старый пост, но я только что столкнулся с той же проблемой при использовании VS2012, поэтому на всякий случай публикую его здесь.

Я решил проблему установкой IIS Экспресс и настроить проект на использование IIS Express в Visual Studio.Решил проблему.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top