Могу ли я разместить два приложения MVC3 рядом друг с другом? - PullRequest
2 голосов
/ 22 декабря 2011

Могу ли я иметь приложение MVC3 в ~ / priv /, а другое в ~ / pub?

Кажется, что если я сначала помещаю приложение в ~ / priv /, то когда я перехожу на "XXX.XXXXX.com/", оно обслуживает приложение в ~ / priv. Могу ли я решить это с маршрутами? Есть ли что-то, что мне не хватает? Пожалуйста помоги!

Edit: Чтобы было ясно, есть ли способ, которым структура может выглядеть так:

[root]
  [priv]
  [pub]

так что если кто-то заходит в root, то никто не виден, если кто-то заходит в root / priv и получает приложение priv, а если кто-то заходит в root / pub, он получает приложение pub.

Ответы [ 4 ]

3 голосов
/ 22 декабря 2011

Вы можете создать несколько приложений на одном сайте, и они могут использовать разные псевдонимы.

Создание нового веб-сайта в IIS Manager. Щелкните правой кнопкой мыши на этом веб-сайте и выберите «Добавить приложение ...», указав псевдоним «priv», и повторите этот процесс для своего другого сайта «pub».

Затем вы можете перейти на предсказанный сайт через XXX.XXXXX.com/priv/mycontoller/myaction, а другой через XXX.XXXXX.com/pub/mycontoller/myaction.

.

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

2 голосов
/ 28 декабря 2011

Необходимо убедиться в нескольких вещах:

  • Виртуальные каталоги [pub] и [priv] должны каждый быть сконфигурированы как приложение в IIS.
  • Если [root] настроен как приложение, любые приложения в подпапках будут наследовать значения из web.config, даже если они запускаются в других пулах приложений.Убедитесь, что это не вызывает конфликт или неожиданное поведение.
  • Проверьте настройку runAllManagedModulesForAllRequests=true.Если [root] настроен как приложение, он может перехватывать вызов IIS до того, как он попадет в дочернее приложение.Вы можете добавить следующее в web.config [root] (но не забудьте переопределить это в [pub] и [priv]:

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <system.webServer>
        <modules runAllManagedModulesForAllRequests="false">
                <remove name="UrlRoutingModule-4.0" />
            </modules>
        </system.webServer>
    </configuration>
    
  • Затем вweb.config для [pub] и [priv] вы можете добавить:

    <modules runAllManagedModulesForAllRequests="true">
        <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" />
    </modules>
    
2 голосов
/ 22 декабря 2011

Вы можете создавать субдомены для каждого приложения.

0 голосов
/ 28 декабря 2011

Если вы можете объединить публичные и частные приложения в одно веб-приложение, вы можете воспользоваться Областями в Asp.net MVC.

Таким образом, вы можете использовать Области или Модуль, чтобы разделить приложение на более мелкие группы (в вашем случае - личная зона и паб). На самом деле Area - это полная структура MVC в вашем приложении.

Группирование контроллеров с ASP.NET MVC

Области приложения в ASP.NET MVC, взять 2

Пошаговое руководство. Организация приложения ASP.NET MVC с использованием областей

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...