URL-маршрутизация и IIS7
24.03.2011 16:24
Привет
У меня есть вопрос относительно маршрутизации URL в asp.net 4.0 и IIS7. Ниже я объяснил, какова структура моего сайта и как он настроен в IIS7.
Структура каталогов:
1.MyWebsite> Index.aspx
2.MyWebsite> О нас> Index.aspx
3. Мой сайт> ContactUs> ContactUs.aspx
II7 Конфигурация:
Я настроил документ по умолчанию для моего приложения как Index.aspx
Теперь, когда я обращаюсь к URL-адресам ниже, IIS7 автоматически выполняет несколько маршрутов (обратите внимание, что до сих пор я не добавил ни одного маршрута в global.asax)
1.localhost / MyWebsite будет перенаправлен на localhost / MyWebsite / Index.aspx Хорошо!
2.localhost / MyWebsite / Aboutus будет перенаправлен на localhost / AboutUs / Index.aspx (это перенаправление выполняется, поскольку документ по умолчанию родительского уровня наследуется папкой AboutUs).
3.localhost / MyWebsite / ContactUs == Ошибка Http 403.14 Запрещено (эта ошибка вызывается IIS7, потому что он не находит Index.aspx в папке Conactus) Отлично !!
Хорошо, так что localhost / MyWebsite / ContactUs будет перенаправлен на localhost / MyWebsite / ContactUs / Index.aspx Я добавил ниже код в методе RegisterRoutes () в global.asax, надеясь, что это удовлетворит мое требование.
routes.MapPageRoute('ConactUs','ContactUs','~/ContactUs/ContactUs.aspx');
Так что теперь, когда я получаю доступ к localhost / MyWebsite / ContactUs, я по-прежнему получаю такую же запрещенную ошибку. Так что настройки страницы IIS7 по умолчанию в корне не позволяют моим маршрутам работать?
Если у меня есть страница Index.aspx в каждой папке, то она работает, т.е. перенаправляется в /Contactus/Index.aspx ... но что, если у меня нет Index.aspx (моего документа по умолчанию) на каждой странице?
Спасибо и всего наилучшего,
м.