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 - サイトの依存関係を確認する
次のコマンドを実行して、Web サイトの依存関係を取得します。
msdeploy -verb:getDependencies -source:metakey=lm/w3svc/1
依存関係の出力を確認し、サイトで使用されているスクリプト マップまたはインストールされているコンポーネントを探します。 たとえば、Web サイトで Windows 認証が使用されている場合は、<dependency name="WindowsAuthentication" /> が確認できます。
サイトがスクリプト マップを継承している場合、これらは依存関係には一覧表示されないので、サイトのスクリプト マップも手動で確認する必要があります。
配置先に必要なコンポーネントをリストアップします。
getDependencies の出力を分析する詳細な手順については、「依存関係の表示」を参照してください。
パート 2 - ターゲットを構成する
依存関係の一覧を確認し、配置先サーバーにインストールします。
たとえば、Web サイトで次のものが使用されているとします。
- ASP.NET
- Windows 認証
- 匿名認証
依存関係に関するこの分析に基づいて、対応するコンポーネントとモジュールをインストールします。
パート 3 - パッケージ ファイルを使用してサイトをターゲットに移行する
必ず、宛先サーバーのバックアップを作成します。 テストするだけの場合でも、そうしておけばサーバーの状態を簡単に復元できます。
%windir%\system32\inetsrv\appcmd add backup "PreWebDeploy"
ソース サーバーで次のコマンドを実行して、サーバーのパッケージ (圧縮) ファイルを作成します。
msdeploy -verb:sync -source:metakey=lm/w3svc/1 -dest:package=c:\Site1.zip > WebDeployPackage.log
パッケージ ファイルを配置先サーバーにコピーします。
宛先サーバーで次のコマンドを実行して、同期操作が実行された場合に何が起こるかを検証します。
msdeploy -verb:sync -source:package=c:\Site1.zip -dest:metakey=lm/w3svc/1 -whatif > WebDeploySync.log
出力を確認した後、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 以降に同期できます。
リモートの配置元からデータを "プル" するか、リモートの配置先にデータを "プッシュ" するかに応じて、配置元または配置先にリモート サービスをインストールします。
コンピューターでサービスを開始します。
net start msdepsvc
次のコマンドを実行して、ローカル ソースからリモートの宛先への "プッシュ" 同期を実行します (Server1 をリモート コンピューターの名前に置き換えます)。 最初に whatif フラグを使用してコマンドを実行します。次に、コマンドが必要な処理を実行することを確認したら、フラグを使用せずに実行します。
msdeploy -verb:sync -source:metakey=lm/w3svc/1 -dest:metakey=lm/w3svc/1,computername=Server1 -whatif > msdeploysync.log
または、次のコマンドを実行して、リモート ソースからローカルの宛先への "プル" 同期を実行します (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 サイトを同期しました。