ASP.NET Проблема маршрутизации 4

#asp.net #routing #url-routing

#asp.net #маршруты #url-маршрутизация

Вопрос:

Я работаю над ASP.NET Проект веб-форм 4.0, использующий маршрутизацию страниц для обслуживания содержимого CMS.

Точный используемый код:

 routes.MapPageRoute("ContentNavigateUrl", "{*navigateurl}", "~/Router.aspx", true, new RouteValueDictionary { }, new RouteValueDictionary { { "navigateurl", @"[-_a-zA-Z0-9/] (.aspx(?. )?)?" } });
  

Веб-сайт содержит смесь фиксированных страниц aspx и страниц CMS, обслуживаемых Router.aspx.

Содержимое CMS содержит URL-адреса, подобные /xyz / abc.

Все работает хорошо, за исключением случаев, когда фактическая папка существует, и поскольку в папке нет страницы по умолчанию, IIS отправляет ошибку 403 (просмотр каталога не включен).

В качестве примера:

Существует реальная папка с именем /xyz, в которой есть несколько aspx-страниц, но нет страницы по умолчанию. Если я запрошу http://domain.com/xyz Вместо этого я получаю ошибку 403, используя Router.aspx так, как я хочу, и отображая содержимое моей CMS.

Есть ли настройка IIS, которую необходимо изменить, или что-то в моем коде?

Спасибо.

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

1. Я пытался исправить эти 403 ошибки в web.config, но, похоже, это ничего не дало: <код состояния ошибки =»403″ redirect =»/Router.aspx»/>

2. Кстати, какую версию IIS вы используете? Я предполагаю, что ваша проблема как-то связана с сопоставлениями обработчиков, попробуйте немного поиграть с ними (например, попробуйте отключить сопоставление обработчиков StaticFile).

3. У меня нет доступа к серверу, кроме как для копирования файлов туда. Я полагаю, что это IIS 7.5.

Ответ №1:

Проблема была решена путем добавления сопоставления ошибок для кода состояния 403 для перенаправления в /Router.aspx в IIS.