Я делаю некоторую работу с 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.