IIS 7.0 の同期

作成者 : Faith Allington
発行日 : 2008 年 4 月 7 日 (作業者 : faith_a(英語))
更新日 : 2009 年 3 月 25 日 (作業者 : faith_a(英語))

このクイック ガイドでは、Web 配置ツールを使用して、IIS 7.0 上で Web サイトをソースからターゲットに同期する方法を説明します。同期するには、データをリモート ターゲットに "プッシュ" するか、リモート ソースから "プル" します。このガイドでは、この 2 つの方法の他に、リモート サービスはインストールしないでアーカイブ フォルダーだけを使用する方法についても説明します。

Web 配置ツールを使用した同期方法

  • プッシュ (ローカル ソースからリモート ターゲットに同期します)
  • プル (リモート ソースからローカル ターゲットに同期します)
  • 独立同期 (ターゲットとソースの両方がリモートにあるコンピューターから同期を開始します)
  • 手動ローカル同期 (ソースのアーカイブを作成してターゲットにコピーし、ローカルに実行します)

前提条件

このガイドの前提条件ソフトウェアは以下のとおりです。

  • .NET Framework 2.0 SP1 以降
  • Web 配置ツール(RC版)

注 : Web 配置ツールをまだインストールしていない場合は、「Web 配置ツールのインストール」を参照してください。

パート 1 - サイトの依存関係の表示

1. 次のコマンドを実行して、Web サイトの依存関係を取得します。

msdeploy -verb:getDependencies -source:apphostconfig="Default Web Site"

2. 依存関係の出力内容を確認し、スクリプト マップ、またはサイトで使用されているインストール済みコンポーネントを探します。たとえば Windows 認証が Web サイトで使用されている場合、<dependency name="WindowsAuthentication" /> が見つかります。

3. サイトがスクリプト マップを継承している場合、このスクリプト マップは依存関係に表示されません。そのサイトのスクリプト マップを手動で確認する必要があります。

4. ターゲットで必要なコンポーネントの一覧をまとめます。

getDependencies の出力内容を分析する詳細な手順については、「Web サイトの依存関係の表示」を参照してください。

 

パート 2 - ターゲットの構成

  1. 依存関係の一覧を確認し、その依存関係をターゲット サーバーにインストールします。 たとえば、以下が Web サイトで使用されているとします。
    • ASP.NET
    • Windows 認証
    • 匿名認証
    • 依存関係の分析に基づいて、これらのコンポーネントをインストールします。

 

パート 3 - ターゲットへのサイトの同期

1. 必ずターゲット サーバーとソース サーバーのバックアップを作成します。テストだけの場合でも、これにより、サーバーの状態を簡単に復元できます。以下のコマンドを実行して、IIS 7.0 サーバーをバックアップします。

%windir%\system32\inetsrv\appcmd add backup "PreMsDeploy"

2. リモート ソースからデータを "プル" するのか、データをリモート ターゲットに "プッシュ" するのかに応じて、ソースまたはターゲットにリモート サービスをインストールします。

3. コンピューターでサービスを開始します。

net start msdepsvc 

4. 以下のコマンドを実行して、同期が実行された場合にどんな結果になるかを確認します。whatif を指定すると、すべての変更が表示されるわけではありません。すべてが成功した場合 (ターゲットに書き込めないなどのエラーが発生しなかった場合) の楽観的な変更内容だけが表示されます。

リモート ターゲットへのプッシュ、ソース コンピューターでの実行
msdeploy -verb:sync -source:apphostconfig="Default Web Site" -dest:apphostconfig="Default Web Site",computername=Server1 -whatif > msdeploysync.log

リモート ソースからのプル、ターゲット コンピューターでの実行
msdeploy -verb:sync -source:apphostconfig="Default Web Site",computername=Server1 -dest:apphostconfig="Default Web Site" -whatif > msdeploysync.log

5. 出力内容を検証後、whatif フラグを指定せずに同じコマンドを実行します。

リモート ターゲットへのプッシュ、ソース コンピューターでの実行
msdeploy -verb:sync -source:apphostconfig="Default Web Site" -dest:apphostconfig="Default Web Site",computername=Server1 > msdeploysync.log

リモート ソースからのプル、ターゲット コンピューターでの実行
msdeploy -verb:sync -source:apphostconfig="Default Web Site",computername=Server1 -dest:apphostconfig="Default Web Site" > msdeploysync.log

任意 - アーカイブを使用してサイトをターゲットに同期

リモート サービスを使用しない場合は、代わりにアーカイブを使用できます。

1. ターゲット サーバーで以下のコマンドを実行し、同期のために、サーバーのアーカイブを取得します。

msdeploy -verb:sync  -source:apphostconfig**="Default Web Site"** -dest:archivedir=c:\site1archive

2. アーカイブ フォルダーをターゲット サーバーにコピーします。

3. ターゲット サーバーで次のコマンドを実行して、同期が実行された場合にどんな結果になるかを確認します。

msdeploy -verb:sync -source:archivedir=c:\site1archive -dest:apphostconfig="Default Web Site" -whatif > msdeploysync.log

4. 出力内容を検証後、whatif フラグを指定せずに同じコマンドを実行します。

msdeploy -verb:sync -source:archivedir=c:\site1archive -dest:apphostconfig="Default Web Site" > msdeploysync.log

 

これで、サイトの同期が終了しました。確認する場合は、ターゲット サーバーにある Web サイトの閲覧をテストします。トラブルシューティングのヘルプについては、「Web 配置ツールのトラブルシューティング」を参照してください。

まとめ

ここでは、ソースの IIS 7.0 サーバーからターゲットの IIS 7.0 サーバーへの Web サイトの同期 (依存関係の表示、ターゲット IIS 7.0 サーバーの構成、および同期の実行を含む) を行いました。