web-dev-qa-db-ja.com

iis7でサイトをコピー/クローンする方法

私が取り組んでいるiisウェブサイトのdev、demo1、demo2のコピーを作りたいです。各iisを独自のコードベースから実行する必要がありますが、設定はほとんど同じです。 Windows 7 Ultimateで、完全に再構成せずに新しいサイトにdev iisを複製する簡単な方法はありますか?各iisの仮想ディレクトリを構成するには20分以上かかるため、これにより多くの作業を節約できます。

43
Agile Noob

ApplicationHost.configファイル を見てください。 「c:\ windows\system32\inetsrv\config」の下に配置する必要があります。これは、すべてのIIS構成データを含むXMLファイルです。このファイルを手動で変更して、Webサイトのコピーをすばやく作成できます。問題が発生した場合は、最初にバックアップを作成してください。 。

49
David

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に移動すると、すべてを正しく行った場合、新しいWebサイトが停止します。

enter image description here
失敗した場合は、バックアップコピーを使用してApplicationHost.configを上書きします。

UPDATE:ApplicationHost.configを編集するときに64ビット環境を使用している場合、管理モードで64ビットエディターを使用する場合のコメントによると メモ帳は1つです

ここから取得

これで時間を節約できることを願っています。

27

実際、上記の答え-ApplicationHost.configの編集は、仕事の半分だけです。また、新しいAppPoolsをapplicationPoolsノードに追加する必要があります。

したがって:

1 /。他の人が言及したように、最初にApplicationHost.configファイルのコピーを作成します!!私は通常、「ApplicationHost_BACKUP_YYYY_MM_DD.config」としてコピーして名前を変更します

2 /。メモ帳の使用(32ビットと64ビットの問題を軽減するWindowsに最適なオプション)。 (私の場合) 'id = "13"'を探してコピーするサイトを検索します。コピーしたいサイトが見つかったら。ノード全体をコピーし、サイトノードのコピー後に貼り付けます。新しいIDを割り当てます。 IISで最初にすべての使用済みIDのサイトを確認してください!!また、新しい名前を付けて、コピーされたセクションのすべての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 /。上記のコピーされたサイトで構成されているようにapplicationPoolsノードに新しいApppoolを追加します。つまり、「Reading List」apppoolをコピーし、コピーの名前を「Reading List 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でサイトを表示し、必要に応じて再起動します:-)

それが誰かを助けることを願っています。

リチャード・ヘザリントン

Adsutil.vbsを使用してWebサイトをコピーするのはどうですか?

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

例えば

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

w3svc/表記の理由は、最初にadsutil.vbs ENUM /P W3SVCを実行するとより明確になります。

参照:

3
Aligma