Как я могу скопировать / клонировать сайт на iis7 - PullRequest
42 голосов
/ 16 марта 2011

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

Ответы [ 4 ]

47 голосов
/ 16 марта 2011

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

26 голосов
/ 24 июля 2014

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

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

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

взято отсюда

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

4 голосов
/ 08 июля 2016

На самом деле ответ выше - редактирование ApplicationHost.config - это только половина работы.Вам также необходимо добавить новые AppPools в узел applicationPools.

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

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

2 /.Использование Блокнота (лучший вариант для Windows, чтобы смягчить проблемы с 32-разрядным или 64-разрядным).Выполните поиск сайта, который нужно скопировать, ища (в моем случае) 'id = "13"'.Как только вы найдете сайт, который хотите скопировать.Скопируйте весь узел и вставьте его после копирования узла сайта.Присвойте ему новый идентификатор.Убедитесь, что проверили сайты в 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>

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

<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 /.Добавьте новые Apppools к узлу applicationPools, как настроено на вашем скопированном сайте выше, т.е. ниже. Я скопировал приложение «Список чтения» и переименовал копию в «Список чтения 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 и перезапустите, если необходимо: -)

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

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

3 голосов
/ 19 марта 2013

Как насчет копирования веб-сайта с использованием 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первый.

Источники:

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