Подтвердить что ты не робот

Запустить два веб-сайта на одном и том же порту в IIS 7.5?

Нам нужно иметь возможность запускать две версии одного веб-приложения ASP.net на одном и том же сервере интранета и номере порта, но с одним сопоставленным с/и другим сопоставленным/экспериментальным (а не с реальными именами, но достаточно близко),

C:\inetpub\wwwroot\Version1 = > http://test1.organization.com/ C:\inetpub\wwwroot\Version2 = > http://test1.organization.com/experimental

Первый URL-адрес уже подвергся воздействию некоторых бета-пользователей и поэтому должен быть несколько стабильным. Второй будет содержать экспериментальный код, который будет видеть только пользователь, идущий в/экспериментальный. У нас нет возможности использовать другой сервер или другой порт.

Я в прошлом это делал, добавляя/сопоставляя сайт под сайтами в IIS, затем добавляя второй сайт в качестве приложения под ним и накладывая его на /site 2.

Сервер   Места       Default Web Site <= физический путь, сопоставленный с первой версией и /            /Application 1 <= вложенное приложение, отображаемое во вторую версию и/экспериментальное

Однако это кажется неаккуратным. Было бы проще сделать это с помощью правила перезаписи или с ARR? Если да, то как?

Спасибо!

4b9b3361

Ответ 1

Комбинация правил ARR и перезаписи решит это. Ниже приведены следующие шаги:

  • Загрузите и установите ARR http://www.iis.net/download/ApplicationRequestRouting
  • В диспетчере IIS выберите свой компьютер на панели "Соединения", дважды щелкните ссылку "Маршрутизация запросов приложений" в разделе IIS, щелкните ссылку "Прокси сервера" на панели "Действия", затем установите флажок "Включить прокси" и выбирает действие Apply.
  • Измените привязки двух существующих веб-сайтов. Например, привяжите веб-сайт выпущенного к порту 81 и веб-сайт Experimental к порту 82.
  • Создайте новый веб-сайт и приложение и привяжите его "http: *: 80:". Назовите его "Веб-сайт по умолчанию". Укажите физический путь к "% SystemDrive%\inetpub\DefaultWebSite"
  • Создайте файл web.config для веб-сайта "По умолчанию" и напишите там свои правила маршрутизации:

    <rules>
        <rule name="Reverse Proxy for Experimental" stopProcessing="true">
            <match url="^.*/experimental/.*" />
            <action type="Rewrite" url="http://{HTTP_HOST}:82/{R:0}" />
        </rule>
        <rule name="Reverse Proxy for Release" stopProcessing="true">
            <match url=".*" />
            <action type="Rewrite" url="http://{HTTP_HOST}:81/{R:0}" />
        </rule>
    </rules>
    
  • Возможно, вам придется немного поиграть с правилами перезаписи, вы можете поэкспериментировать с помощью апплета URL-адреса Rewrite Module на IIS и узнать больше об этом здесь: http://learn.iis.net/page.aspx/500/testing-rewrite-rule-patterns/ Для дальнейшей помощи обязательно прочтите и просмотрите блог Руслана Якушева: http://ruslany.net/

Это даст вам три полностью отдельных веб-сайта, доступных через один фасад на порту 80 (хотя, конечно, вы можете попасть на каждый сайт прямо на портах 81 и 82, если вам нужно: http://localhost:81/default.aspx например.

Ответ 2

Можно ли запустить один из сайтов в другом субдомене, скажем, test1.organization.com и beta1.organization.com? Если это так, вы можете установить их как сайты верхнего уровня в IIS и установить имя хоста для каждого связывания сайтов, чтобы они могли работать как на одном IP-адресе, так и на порту.