Comment puis-je copier/cloner un site sur iis7

Je veux faire une copie dev, demo1, demo2 du site Web iis sur lequel je travaille. J'ai besoin que chaque iis exécute sa propre base de code, mais les paramètres seront presque identiques. Existe-t-il un moyen facile dans windows 7 ultimate de cloner mon dev iis sur un nouveau site sans avoir à le reconfigurer complètement? Pour configurer les répertoires virtuels pour chaque iis prend 20 minutes plus donc cela pourrait me sauver beaucoup de travail.

36
demandé sur Agile Noob 2011-03-16 00:55:06

4 réponses

Jetez un oeil à la ApplicationHost.fichier de configuration . Il devrait être situé sous "c:\windows\system32\inetsrv\config". Il s'agit d'un fichier XML qui contient toutes les données de configuration IIS. Vous pouvez modifier manuellement ce fichier pour créer rapidement des copies de votre site web. Assurez-vous de faire une sauvegarde d'abord au cas où vous auriez des problèmes.

44
répondu David 2015-02-26 11:55:15

Aller à C:\Windows\system32\inetsrv\config Faire une copie du fichier ApplicationHost.config. C'est et fichier XML. Ouvrez-le et allez à <configuration><system.applicationHost><sites> ('configuration\system.applicationHost\sites') trouvez le site que vous souhaitez dupliquer (il aura le même nom que dans IIS Management studio) puis copiez cette section de site et collez-la ci-dessous dans {[6] } puis attribuez une nouvelle section de site de nouveaux attributs d'id et de nom qui n'ont pas encore été utilisés 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>

Serait cloné à.

<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>

Allez à IIS Management studio et si vous avez tout fait correctement, il y aura un nouveau site web qui est arrêté.

entrez la description de l'image ici
En cas d'échec, utilisez la copie de sauvegarde pour écraser ApplicationHost.config.

Mise à jour: selon les commentaires si vous utilisez l'environnement 64bit lors de l'édition ApplicationHost.config vous voulez utiliser l'éditeur 64bit en mode Admin, Le Bloc-Notes est un.

Pris d'ici

J'espère que cela vous fera gagner du temps.

21
répondu Matas Vaitkevicius 2016-05-10 12:31:43

Que diriez-vous de copier le site Web en utilisant adsutil.vbs?

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

Par exemple

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

La raison de la notation w3svc/ est plus évidente si vous exécutez adsutil.vbs ENUM /P W3SVC en premier.

Références:

3
répondu Aligma 2013-03-19 01:32:10

En fait la réponse ci-dessus-éditer L'ApplicationHost.config est seulement la moitié du travail. Vous devrez également ajouter les nouveaux AppPools au nœud applicationPools.

Donc :

1/. Comme d'autres l'ont mentionné, faites d'abord une copie de votre ApplicationHost.fichier de config !! Je copie habituellement et renommer comme " ApplicationHost_BACKUP_YYYY_MM_Dd.config "

2/. Utilisation du bloc-notes (meilleure option pour Windows pour atténuer les problèmes avec 32 bits vs 64 bits). Rechercher le site à copier à la recherche (dans mon cas) 'id="13"'. Une fois que vous trouvez le site que vous souhaitez copier. Copiez le nœud entier et collez-le après la copie du nœud du site. Attribuez-lui un nouvel ID. Assurez-vous de vérifier les sites dans IIS pour tous les ID utilisés en premier !! Assurez-vous également de lui donner un nouveau nom et de mettre à jour tous les chemins et APPPOOLS dans la section copiée. Voir l'exemple ci-dessous.

SITE À COPIER (ACTUEL):

<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 COPIÉ (NOUVEAU):

<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/. Ajoutez de nouveaux Apppools au nœud applicationPools tel que configuré dans votre site copié ci-dessus, c'est-à-dire ci-dessous, j'ai copié l'apppool" liste de lecture "et renommé la copie" liste de lecture 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>

Si tout va bien, consultez le site dans IIS et redémarrez si nécessaire: -)

J'espère que ça aide quelqu'un.

Richard Hetherington

2
répondu Richard Hetherington 2016-07-08 12:37:43