IIS 6.0 Web サイトを同期する

作成者: Faith A

このクイック ガイドでは、Web 配置ツールを使用して、IIS 6.0 配置元コンピューター上の Web サイトを IIS 6.0 配置先コンピューターに同期するプロセスについて説明します。 これは、リモートの配置先にデータを "プッシュ" するか、リモートの配置元からデータを "プル" することによって行うことができます。 このガイドでは、その両方の方法に加え、Web Deployment Agent Service (MsDepSvc、または "リモート エージェント サービス") をインストールする必要がないようにパッケージ ファイルを使用する方法についても説明します。

Web 配置ツールを使用した同期にはどのような方法がありますか?

  • プッシュ (ローカルの配置元からリモートの配置先に同期)
  • プル (リモートの配置元からローカルの配置先に同期)
  • 独立した同期 (配置先と配置元がどちらもリモートにあるコンピューターから同期を開始する)
  • 手動でのローカル同期 (配置元のパッケージ ファイルを作成し、配置先にコピーしてローカルで実行)

前提条件

このガイドには、次の前提条件が必要です。

  • .NET Framework 2.0 SP1 以上
  • Web 配置ツール 1.1

注: Web 配置ツールをまだインストールしていない場合は、Web 配置のインストールに関するページを参照してください。

パート 1 - サイトの依存関係を確認する

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

    msdeploy -verb:getDependencies -source:metakey=lm/w3svc/1
    
  2. 依存関係の出力を確認し、サイトで使用されているスクリプト マップまたはインストールされているコンポーネントを探します。 たとえば、Web サイトで Windows 認証が使用されている場合は、<dependency name="WindowsAuthentication" /> が確認できます。

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

  4. 配置先に必要なコンポーネントをリストアップします。

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

パート 2 - ターゲット (配置先) を構成する

  1. 依存関係の一覧を確認し、配置先サーバーにインストールします。 たとえば、Web サイトで次のものが使用されているとします。

    • ASP.NET
    • Windows 認証
    • 匿名認証

    依存関係のこの分析に基づいて、対応するコンポーネントを移行先サーバーにインストールしてから、同期を実行します。

パート 3 - サイトをターゲットに同期する

  1. 必ず、配置先サーバーと配置元サーバーのバックアップを作成してください。 テストするだけの場合でも、そうしておけばサーバーの状態を簡単に復元できます。

    iisback /backup /b PreWebDeploy
    
  2. リモートの配置元からデータを "プル" するか、リモートの配置先にデータを "プッシュ" するかに応じて、配置元または配置先にリモート サービスをインストールします。

  3. サーバーでサービスを開始します。

    net start msdepsvc
    
  4. 以下のコマンドを実行して、同期が実行された場合に何が起こるかを検証します。 -whatif フラグですべての変更が明らかになるるわけではありません。すべて成功した場合に何が変わるかが楽観的に示されるだけです (たとえば、配置先に書き込めない状況で発生するようなエラーは捕捉されません)。

    • 配置元マシンで実行してリモートの配置先にプッシュする (computerName 引数には、リモートの配置先コンピューターを指定します)。

      msdeploy -verb:sync -source:metakey=lm/w3svc/1 -dest:metakey=lm/w3svc/1,computername=Server1 -whatif > msdeploysync.log
      
    • 配置先マシンで実行してリモートの配置元からプルする (computerName 引数には、リモートの配置元コンピューターを指定します)。

      msdeploy -verb:sync -source:metakey=lm/w3svc/1,computername=Server1 -dest:metakey=lm/w3svc/1 -whatif > msdeploysync.log
      
  5. 出力を確認した後、-whatif フラグを指定せずに同じコマンドをもう一度実行します。

    • 配置元マシンで実行してリモートの配置先にプッシュする

      msdeploy -verb:sync -source:metakey=lm/w3svc/1 -dest:metakey=lm/w3svc/1,computername=Server1 > msdeploysync.log
      
    • 配置先マシンで実行してリモートの配置元からプルする

      msdeploy -verb:sync -source:metakey=lm/w3svc/1,computername=Server1 -dest:metakey=lm/w3svc/1 > msdeploysync.log
      

(省略可能) パッケージ ファイルを使用してサイトをターゲットに同期する

リモート サービスの使用が望ましくない場合は、代わりにパッケージ (圧縮ファイル) を使用できます。

  1. 宛先サーバーで次のコマンドを実行して、Web サイト ソースのパッケージを作成します。

    msdeploy -verb:sync  -source:metakey=lm/w3svc/1 -dest:package=c:\Site1.zip
    
  2. パッケージ ファイルを配置先サーバーにコピーします。

  3. 配置先サーバーで以下のコマンドを実行して、同期が実行された場合に何が起こるかを検証します。

    msdeploy -verb:sync -source:package=c:\Site1.zip -dest:metakey=lm/w3svc/1 -whatif > msdeploysync.log
    
  4. 出力を確認した後、whatif フラグを指定せずに同じコマンドをもう一度実行します。

    msdeploy -verb:sync -source:package=c:\Site1.zip -dest:metakey=lm/w3svc/1 > msdeploysync.log
    

これで、サイトの同期が完了しました。 確認のため、ブラウザーで配置先サーバー上の Web サイトにアクセスします。 トラブルシューティングに役立つ情報については、「Web 配置のトラブルシューティング」を参照してください。

まとめ

依存関係を表示し、宛先の IIS 6.0 サーバーを構成し、Web Deployment Agent Service を使用して、ソースの IIS 6.0 サーバーから宛先の IIS 6.0 サーバーに Web サイトを同期しました。