Web.Routing для корня сайта или домашней страницы - PullRequest
2 голосов
/ 02 апреля 2010

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

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

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

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

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

Спецификации: ASP.NET 3.5sp1, C #, без веб-форм, MVC или openrasta. Обычные старые IHttpHandlers.

Ответы [ 2 ]

0 голосов
/ 10 сентября 2012

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

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

0 голосов
/ 05 апреля 2010

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

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

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

...