Интеграция ASP.NET MVC 2 с классическим ASP

Я занимаюсь перемещением большого классического приложения ASP на ASP.NET MVC 2. Вопросы:

У меня вопрос об организации проекта.

Я бы предпочел не смешивать код MVC с кодом ASP в одном проекте VS. Я хотел бы иметь MVC WAP с областями, соответствующими тем частям веб-сайта, которые я перемещаю. Например, на старом сайте есть папка

/products/default.asp .....

/products/productName/default.asp

и Т. Д.

В MVC WAP я хотел бы иметь область под названием «продукты», в которой я мог бы затем путем перезаписи, маршрутизации или, желательно, с помощью некоторой конфигурации IIS, указать папку «продукты» на сайте ASP. Таким образом, я мог постепенно перемещать корневые папки с сайта ASP в приложение MVC.

Однако, если я создаю MVC WAP в виртуальной папке, мои маршруты будут выглядеть как

http://localhost/virtualFolder/products

вместо

http://localhost/products

Есть предложения, как это победить?

Я знаю, что во время развертывания я мог бы развернуть MVC WAP в корне сайта ASP, но это не помогает с отладкой.


person 3Dave    schedule 22.04.2010    source источник


Ответы (1)


Я напишу свой ответ, предполагая, что он размещен на экземпляре IIS7. Если это IIS6, то вам нужно искать для него подходящий модуль ModRewrite.

Итак, предполагая IIS7, вам будет гораздо лучше использовать URL Rewrite: http://learn.iis.net/page.aspx/460/using-the-url-rewrite-module/

Вы можете управлять своими правилами перезаписи и перезаписывать карты, в зависимости от вашего уровня доступа и контроля, либо из консоли администрирования IIS7, либо вручную через файл web.config.

Эти правила перезаписи и карты могут быть настолько простыми или сложными, насколько вам нужно. Вы также можете настроить их как временное или постоянное перенаправление, что поможет, если какие-либо поисковые системы индексируют сайт, поскольку правильный код перенаправления будет возвращен с HTTP-запросом, чтобы гарантировать быстрое обновление результатов поискового робота.

person thewinchester    schedule 25.05.2010