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

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

C:inetpubwwwrootVersion1 => http://test1.organization.com/ C:inetpubwwwrootVersion2 => http://test1.organization.com/experimental

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

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

сервер Места Веб-сайт по умолчанию

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

спасибо!

2 ответов


комбинация правил ARR и перезаписи решит эту проблему. Вот шаги, чтобы следовать:

  1. скачать и установить ARR http://www.iis.net/download/ApplicationRequestRouting
  2. в Диспетчере IIS выберите свой компьютер на панели подключения, дважды щелкните функцию маршрутизации запросов приложений в разделе IIS, щелкните ссылку "прокси-сервер" на панели действий, затем установите флажок" Включить прокси-сервер " и выберите применить действие.
  3. измените привязки двух существующих веб-сайтов, например, свяжите выпущенный веб-сайт с портом 81 и экспериментальный веб-сайт с портом 82.
  4. создайте новый веб-сайт и пул приложений и привяжите его к http:*:80:. Назовите его "веб-сайт по умолчанию". Укажите его физический путь к "%SystemDrive%\inetpub\DefaultWebSite"
  5. создать веб.файл конфигурации для веб-сайта "по умолчанию" и напишите правила маршрутизации там:

    <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>
    
  6. вы, возможно, придется несколько повозиться с вашим перепишите правила, вы можете экспериментировать, используя модуль переопределения URL-адресов апплет на IIS, и подробнее об этом здесь: http://learn.iis.net/page.aspx/500/testing-rewrite-rule-patterns/ для получения справки обязательно и блог обзор Руслана Якушева: http://ruslany.net/

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


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