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

Как копировать/клонировать сайт на iis7

Я хочу сделать dev, demo1, demo2 копию iis-сайта, над которым я работаю. Мне нужно, чтобы каждый iis запускал свою собственную базу кода, но настройки будут почти одинаковыми. Есть ли простой способ в Windows 7 завершить клонирование моего dev на новый сайт без необходимости полностью перенастроить его? Для настройки виртуальных каталогов для каждого iis требуется 20 минут плюс, чтобы это могло сэкономить мне много работы.

4b9b3361

Ответ 1

Посмотрите файл ApplicationHost.config. Он должен быть расположен под "c:\windows\system32\inetsrv\config". Это XML файл, содержащий все данные конфигурации IIS. Вы можете вручную изменить этот файл, чтобы быстро создать копии своего сайта. Просто сначала сделайте резервную копию, если у вас есть проблемы.

Ответ 2

Перейдите к C:\Windows\system32\inetsrv\config Сделайте копию файла ApplicationHost.config. Это и XML файл. Откройте его и перейдите на <configuration><system.applicationHost><sites> ('configuration\system.applicationHost\sites') найдите сайт, который вы хотите дублировать (он будет иметь то же имя, что и в студии IIS Management), затем скопируйте этот раздел сайта и вставьте его ниже внутри <sites>, затем назначить новый раздел сайта новым идентификаторам имени и имени, которые еще не были использованы name="Test1" id="5".

 <site name="Test" id="4" serverAutoStart="true">
                <application path="/" applicationPool="Test">
                    <virtualDirectory path="/" physicalPath="C:\OnTheMove\tags\Release 2.1.7.7\Offline\OfflineRouteHandler" userName="administrator" password="[enc:AesProvider:K0YvJ9r+XXNP8VUrZlbCPQ==:enc]" />
                </application>
                <application path="/Offline_Tablet" applicationPool="Test">
                    <virtualDirectory path="/" physicalPath="C:\OTM\Offline\OnTheMoveOffline" userName="administrator" password="[enc:AesProvider:tT9uIWQDtIZTRnSMmx8XmIQv0lr7AbUXcuGby5qRZSo=:enc]" />
                </application>
                <application path="/OnTheMoveWebFiles" applicationPool="Test">
                    <virtualDirectory path="/" physicalPath="C:\OTM\Offline\OnTheMoveOffline\OnTheMoveWebFiles" userName="administrator" password="[enc:AesProvider:zZgL59H6ka6jehb9BPTaNR8ogdgc8S90c3vf8p6MjPc=:enc]" />
                </application>
                <application path="/eai_enu" applicationPool="Test">
                    <virtualDirectory path="/" physicalPath="C:\OTM\Offline\OfflineRouteHandler" userName="administrator" password="[enc:AesProvider:MfaNJz14gaJK5EjgIqhj4w==:enc]" />
                </application>
                <bindings>
                    <binding protocol="http" bindingInformation="*:80:" />
                </bindings>
            </site>

будет клонирован.

<site name="Test1" id="5" serverAutoStart="true">
            <application path="/" applicationPool="Test">
                <virtualDirectory path="/" physicalPath="C:\OnTheMove\tags\Release 2.1.7.7\Offline\OfflineRouteHandler" userName="administrator" password="[enc:AesProvider:K0YvJ9r+XXNP8VUrZlbCPQ==:enc]" />
            </application>
            <application path="/Offline_Tablet" applicationPool="Test">
                <virtualDirectory path="/" physicalPath="C:\OTMTrunk\Offline\OnTheMoveOffline" userName="administrator" password="[enc:AesProvider:tT9uIWQDtIZTRnSMmx8XmIQv0lr7AbUXcuGby5qRZSo=:enc]" />
            </application>
            <application path="/OnTheMoveWebFiles" applicationPool="Test">
                <virtualDirectory path="/" physicalPath="C:\OTMTrunk\Offline\OnTheMoveOffline\OnTheMoveWebFiles" userName="administrator" password="[enc:AesProvider:zZgL59H6ka6jehb9BPTaNR8ogdgc8S90c3vf8p6MjPc=:enc]" />
            </application>
            <application path="/eai_enu" applicationPool="Test">
                <virtualDirectory path="/" physicalPath="C:\OTMTrunk\Offline\OfflineRouteHandler" userName="administrator" password="[enc:AesProvider:MfaNJz14gaJK5EjgIqhj4w==:enc]" />
            </application>
            <bindings>
                <binding protocol="http" bindingInformation="*:80:" />
            </bindings>
        </site>

Перейдите в студию управления IIS, и если вы все сделали правильно, будет остановлен новый веб-сайт.

enter image description here
 Если он не использует резервную копию для перезаписывания ApplicationHost.config.

ОБНОВЛЕНИЕ: В соответствии с комментариями, если вы используете 64-битную среду при редактировании ApplicationHost.config, вы хотите использовать 64-битный редактор в режиме администратора, Блокнот - это один.

Взято отсюда

Надеюсь, это сэкономит вам некоторое время.

Ответ 3

Как насчет копирования веб-сайта с помощью adsutil.vbs?

C:\Inetpub\AdminScripts> adsutil.vbs copy <source> <destination>

например

C:\Inetpub\AdminScripts> adsutil.vbs copy w3svc/1 w3svc/556

Причина обозначения w3svc/ более очевидна, если вы сначала выполняете adsutil.vbs ENUM /P W3SVC.

Литература:

Ответ 4

Собственно, ответ выше - редактирование ApplicationHost.config только половина работы. Вам также нужно будет добавить новые AppPools в applicationPools node.

Следовательно:

1/. Как уже упоминалось, сначала сделайте копию вашего файла ApplicationHost.config! Обычно я копирую и переименовываю как "ApplicationHost_BACKUP_YYYY_MM_DD.config"

2/. Использование Notepad (лучший вариант для Windows для устранения проблем с 32-битным и 64-битным). Найдите сайт для копирования (в моем случае) 'id = "13". Как только вы найдете сайт, который хотите скопировать. Скопируйте весь node и вставьте его после копирования сайта node. Назначьте ему новый идентификатор. Обязательно сначала проверяйте сайты в IIS для всех использованных идентификаторов! Также не забудьте дать ему новое имя и обновить все PATHS и APPPOOLS в скопированном разделе. См. Пример ниже.

САЙТ К КОПИРОВАНИЮ (ТЕКУЩИЙ):

<site name="Reading List" id="13" serverAutoStart="true">
     <application path="/" applicationPool="Reading List">
         <virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot\reading_list\http" />
     </application>              
     <bindings>
          <binding protocol="http" bindingInformation="*:80:readinglist.jsgroup.local" />
     </bindings>
</site>

КОПИРОВАННЫЙ САЙТ (NEW):

<site name="Reading List" id="14" serverAutoStart="true">
  <application path="/" applicationPool="Reading List 2">
      <virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot\reading_list_2\http" />
 </application>              
 <bindings>
     <binding protocol="http" bindingInformation="*:80:readinglist2.jsgroup.local" />
 </bindings>
</site>

3/. Добавьте новые Apppool в applicationPools node, как указано на вашем скопированном сайте выше i.e ниже. Я скопировал приложение "Список Чтения" и переименовал копию "Список Чтения 2"

<applicationPools>
    <add name="DefaultAppPool" autoStart="true" managedRuntimeVersion="v4.0">
         <processModel identityType="ApplicationPoolIdentity" />
    </add>
    <add name="Reading List" autoStart="true" managedRuntimeVersion="v4.0" />
    <add name="Reading List 2" autoStart="true" managedRuntimeVersion="v4.0" />
    <!-- Other AppPools here -->
 </applicationPools>

Если все хорошо, просмотрите сайт в IIS и при необходимости перезапустите: -)

Надеюсь, что это поможет кому-то.

Ричард Хетерингтон