ASP.NET MVC Как использовать маршруты, когда приложение публикуется как SubProject домена?
У меня есть веб-приложение, которое отлично работает, когда отлажены и протестированы локально. Однако, когда я публикую сайт на производственном сервере, маршрутизация нарушена. Это связано с тем, что он работает как подпроект на производственном сервере.
Тестирование: http://localhost:xxx/ Производство: http: // remotehost / webapp /
Как мне настроить маршрутизацию?
Это моя текущая настройка маршрутизации (в основном по умолчанию). Сервер отображает действие контроллера по умолчанию, когда я http://remotehost/webapp/. Но когда я жестко программирую контроллер ( http://remotehost/webapp/Project/ он не работает...
Shared Sub RegisterRoutes(ByVal routes As RouteCollection)
routes.IgnoreRoute("{resource}.axd/{*pathInfo}")
routes.MapRoute("ProjectsByCategory", "Project/Category/{id}", _
New With {.controller = "Project", .action = "ListByCategory", .id = ""}, _
New With {.id = "^[0-9]+"})
routes.MapRoute( _
"Default", _
"{controller}/{action}/{id}", _
New With {.controller = "Project", .action = "Index", .id = ""} _
)
End Sub
2 ответа
Мне кажется, это может быть связано с публикацией на iis 6. Здесь есть статья об этом.
Для меня аналогичная проблема была решена путем добавления "карты приложения Wildcard":
- В IIS щелкните правой кнопкой мыши и выберите "Свойства" для рассматриваемого виртуального каталога.
- выберите вкладку Виртуальный каталог
- выберите Конфигурация
- нажмите Вставить
- введите путь к aspnet-isapi.dll (обычно это c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll).
Кстати, маршрутизация, кажется, работает на уровне приложений. Нет необходимости беспокоить ваше доменное имя или более высокие имена каталогов.