Web サイトを IIS 6.0 から IIS 7 以降に移行する

作成者: Faith A

このクイック ガイドは、Web 配置ツールを使用して、WEB サイトを IIS 6.0 から IIS 7 以降に移行するのに役立ちます。

Web 配置ツールを使用して実行できる移行の種類

  • IIS 6.0 から IIS 7 以降への 1 つまたは 1,000 個の Web サイトの移行 (すべての構成設定、コンテンツ、証明書を含む)。
  • 1 つのアプリケーションを移行する
  • サーバー全体 (すべての Web サイト、アプリケーション プールなど) を IIS 6.0 から IIS 7 以降に移行する
  • サイト、アプリケーション プール、アセンブリ、COM オブジェクト、レジストリ キー、コンテンツで構成されるカスタム マニフェストの IIS 6.0 から IIS 7 以降への移行。

前提条件

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

  • .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 - ターゲットを構成する

依存関係の一覧を確認し、配置先サーバーにインストールします。

たとえば、Web サイトで次のものが使用されているとします。

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

依存関係に関するこの分析に基づいて、対応するコンポーネントとモジュールをインストールします。

パート 3 - パッケージ ファイルを使用してサイトをターゲットに移行する

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

    %windir%\system32\inetsrv\appcmd add backup "PreWebDeploy"
    
  2. ソース サーバーで次のコマンドを実行して、サーバーのパッケージ (圧縮) ファイルを作成します。

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

  4. 宛先サーバーで次のコマンドを実行して、同期操作が実行された場合に何が起こるかを検証します。

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

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

{省略可能 - Microsoft Web Deployment Agent Service を使用してサイトをターゲットに移行する}

パッケージを使用しない場合は、Web 配置エージェント サービス (MsDepSvc、"リモート サービス" とも呼ばれます) を使用して、IIS 6.0 から IIS 7 以降に同期できます。

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

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

    net start msdepsvc
    
  3. 次のコマンドを実行して、ローカル ソースからリモートの宛先への "プッシュ" 同期を実行します (Server1 をリモート コンピューターの名前に置き換えます)。 最初に whatif フラグを使用してコマンドを実行します。次に、コマンドが必要な処理を実行することを確認したら、フラグを使用せずに実行します。

    msdeploy -verb:sync -source:metakey=lm/w3svc/1 -dest:metakey=lm/w3svc/1,computername=Server1 -whatif > msdeploysync.log
    
  4. または、次のコマンドを実行して、リモート ソースからローカルの宛先への "プル" 同期を実行します (Server1 をリモート コンピューターの名前に置き換えます)。 最初に whatif フラグを使用してコマンドを実行します。次に、コマンドが必要な処理を実行することを確認したら、フラグを使用せずに実行します。

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

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

まとめ

これで、依存関係を表示し、宛先 IIS サーバーを構成し、パッケージ ファイルまたは Web Deployment Agent Service を使用して、ソースの IIS 6.0 サーバーから宛先の IIS 7 以上のサーバーに Web サイトを同期しました。