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).

Кстати, маршрутизация, кажется, работает на уровне приложений. Нет необходимости беспокоить ваше доменное имя или более высокие имена каталогов.

Другие вопросы по тегам