IIS 7サイトを別のサーバーに移行するにはどうすればよいですか?


105

(すべての設定などとともに)Webサイトを別のサーバーに移動するためのベストプラクティスは何でしょうか。

  • 新しいサーバーでサイトを手動で再作成します(明らかな理由により、保守できません)
  • applicationHost.config設定ファイルをコピーします。
  • appcmdを使用してバックアップと復元を行う
  • MSDeployを使用して新しいマシンでサイトを公開する
  • サードパーティツールを使用する

他の人の経験はどうなっていたのだろう。


マイクロソフトはWeb配置(このツールが作成された後)のみをお勧めします。そのため、以下の回答を読む前に、自分が完全に自分のリスクにさらされていることを確認してください。
Lex Li、

回答:


134

IISマネージャーでサーバー構成をエクスポートします。

  1. IISマネージャーで、[サーバー]ノードをクリックします。
  2. 「管理」の下の共有構成に移動します
  3. 「構成のエクスポート」をクリックします。(インターネット経由で送信する場合はパスワードを使用できます。USBキーを介して移動する場合は、パスワードを気にしないでください。)
  4. これらのファイルを新しいサーバーに移動します

    administration.config
    applicationHost.config
    configEncKey.key 
    
  5. 新しいサーバーで、[共有構成]セクションに戻り、[共有構成を有効にする]をオンにします。これらのファイルへの物理パスの場所を入力して適用します。

  6. 暗号化パスワード(設定した場合)を要求し、IISをリセットする必要があります。

バム!ビールを飲みに行きます!


8
おそらくファイルをコピーする代わりに、インポートサーバーまたはサイトパッケージを使用する必要がありますが、これもテストしていません。しかし、私はapplicationHost.configに新しいサーバーに存在する必要がないファイルパスがあることを知っています。また、IISに現在サイトを置くことはできないため、このプロセスによって現在実行中の構成が破壊されることはないことにも言及する必要があります。
frogstarr78 11/07/11

16
最後のステップを強調しすぎることはできません。非常に重要です。
2013

7
IISの新しいバージョンに移行する場合は、あまり良い考えではありません。それ以外の場合は、これその方法です。
ロイティンカー

1
動作しないので、うまくいくの
us

1
IIS共有構成は、マシン間で設定を移行する方法として設計されていないため、この回答の後に問題が発生した場合は、他人を責めないでください。
Lex Li

25

MSDeployは、IISチームが推奨するすべてのコンテンツ、構成などを移行できます。 http://www.iis.net/extensions/WebDeploymentTool

パッケージを作成するには、次のコマンドを実行します(既定のWebサイトを自分のWebサイト名に置き換えます)。

msdeploy.exe -verb:sync -source:apphostconfig="Default Web Site" -dest:package=c:\dws.zip > DWSpackage7.log

パッケージを復元するには、次のコマンドを実行します。

msdeploy.exe -verb:sync -source:package=c:\dws.zip -dest:apphostconfig="Default Web Site" > DWSpackage7.log

1
ありがとうビル-私はツールを見たが、それがまだベータ版であったので用心深い。
カリッド2009

1
2016年も、これは「最先端」ですが、MSDEPLOY 3.6を使用することは非常に困難です。彼らがいつか何か新しいものを作ってくれることを願っています。
Warren P

MSDeployはサイトを正しく転送しませんでした。各サイトのアプリケーションを含む1つのサイトになってしまったため、構造全体が間違っていました。
brianary

確かにこれは推奨される方法であり、docs.microsoft.com / en- us / iis / publish / using-web- deploy / docs.microsoft.com/en-us/iis/publish/using-web-のようなドキュメントです。展開/…は、ユーザーが注意を払う必要がある必要な手順とキーポイントを習得するための重要な要素です。インターネット上の問題のほとんどは、記事ですでに回答されています。人々がそのようなことに十分な時間を費やしている場合、Web配置は使用するのが「難しい」ツールではありません。
Lex Li

18

appcmdを使用してサイト構成をエクスポート/インポートするのに役立つWebサイトを次に示します。 http://www.microsoftpro.nl/2011/01/27/exporting-and-importing-sites-and-app-pools-from-iis-7-and-7-5/


リンクをありがとう。これにより、サイトIDなどを変更することもでき、10の異なるアプリケーションと30の異なる仮想ディレクトリを設定する必要がなくなりました。
大幅な

このアプローチは基礎となる依存関係(IISモジュールなど)を考慮しないため、自己の責任において使用してください。
Lex Li

12

Microsoft Web Deploy v3は、すべてのファイル、構成設定などをエクスポートおよびインポートできます。すべてを新しいサーバーにインポートできるzipアーカイブに入れます。IISの新しいバージョン(v7〜v8)にアップグレードすることもできます。

http://www.iis.net/extensions/WebDeploymentTool

ツールをインストールした後: IIS管理コンソールでサーバーまたはWebサイトを右クリックし、[展開]、[アプリケーションのエクスポート...]の順に選択して、エクスポートを実行します。

新しいサーバーで、エクスポートしたzipアーカイブを同じ方法でインポートします。


しかし、それはすべてのファイルを取ります。ファイルの取得をスキップする方法はありますか?たとえばFTPサーバーを移行すると、すべてのファイルを取得してzip圧縮しようとします。
RayofCommand 2014年

2
@RayofCommand-配置オプションを選択すると、「コンテンツ」リストをクリアできます。パッケージにはすべてのファイルが含まれていません。
Zhaph-Ben Duguid 2014年

1
ただし、サイトごとに展開する場合のみ...サーバー全体の移動ではありません。
イーサンアレン

1
移行先サーバー(IIS8)にMS Web配置をインストールした後、IIS管理コンソールにはWeb配置オプションが含まれていません。
brianary

1
また、パッケージをインストールした後、「展開」メニューがありません。
Devil's Advocate

3

appcmdを使用して1つまたはすべてのサイトをエクスポートしてから、新しいサーバーに再インポートします。iis7.0または7.5の可能性があります。appcmdを使用してエクスポートする場合、パスワードは復号化されてから再インポートされ、再暗号化されます。


3

担当者がいないため、スレッドをコメントできません。別のコメンターは、IISの下位バージョンから上位バージョンに移行できないと述べました。これは、一部のファイルをマージしない場合に当てはまりますが、チュウの投稿した回答を使用してIIS 7.5サイトをIIS 8.0に移行しただけで可能です。

エクスポートが作成されると(II7.5)、IIS7.5サーバー上のリソースへの参照を持つ2つのキーファイル(administration.configおよびapplicationHost.config)があります。たとえば、DLLは7.5に固有の公開鍵とバージョンで参照されます。これらは、IIS8サーバーでは同じではありません。機能の構成も異なる場合があります(私が同じであることを確認しました)。7.5には存在しない8の新機能がいくつかあります。

あなたが2つのファイルをマージするのに十分勇気があるなら-それはうまくいくでしょう。IISを台無しにしたため、一度アンインストールする必要がありましたが、2回目にそれを取得しました。

私はマージツール(Beyond Compare)を使用しましたが、同等のものがなければ、それは巨大なPITAになりますが、優れたdiffツール(5分)を使用するとかなり簡単でした。

マージを行うには、インポートを試行する前に、8.0ファイルをエクスポートした7.5ファイルと比較する必要があります。ほとんどの場合、8.0ファイルは、エクスポートされた7.5ファイル内のサーバー固有のものを上書きし、サイト/アプリプール固有のものは残す必要があります。

私は、administration.configがほとんど同一であることを発見しました。多くのエントリのバージョン情報ではありません。これは簡単でした。

applicationHost.configには、さらに多くの違いがあります。一部のエントリは異なる順序で並べられていますが、それ以外は同一であるため、それぞれの違いを調べて理解する必要があります。

マージする前に、7.5エクスポートファイルをSystem32 \ inetsrv \ config \ Exportフォルダに配置しました。

上記の2つのファイルについて、FROMフォルダーSystem32 \ inetsrv \ configをフォルダーSystem32 \ inetsrv \ config \ Exportにマージしました。サイト固有のタグ/要素(applicationPools、customMetadata、サイト、認証など)を除いて、FROMファイルのすべてをプッシュしました。特筆すべきは、私が保持しなければならないサイト固有の「場所」タグブロックも多数ありましたが、新しいサーバーには独自の「場所」タグブロックがあり、サーバー固有のデフォルトを保持する必要があります。

最後に、サービスアカウントを使用する場合、これらのキャッシュされたパスワードはジャンクであり、アプリプールに再入力する必要があることに注意してください。最初は私のサイトはどれも機能しませんでしたが、必要なのはすべてのアプリプールのパスワードを再入力することだけでした。

コメントできる人がこの投稿をスレッドで言及した場合-おそらく、複雑な構成の1つのサーバー上に多くのサイトを持っている私のような誰かを助けるでしょう。

よろしく、

スチュアート


マージされた移行に実際にStuartの回答を使用しましたが、MS Web Deployはまだ好きではありません。
噛む

1

私の場合、ファイルはすでにコピーされています。このガイドの手順に従う最も簡単な方法を見つけました:https : //www.ryadel.com/en/exporting-importing-app-pools-and-websites-configuration-between -multiple-iis-instances /

AppPools / Websitesをエクスポートし、xmlファイルを宛先サーバーにコピーして、AppPoolsをインポートしてからWebサイトをインポートしました。とてもうまくいきました。これは、この質問のもう1つの優れたオプションです。


これにより、デフォルトのアプリプールとデフォルトのWebサイトを上書きできないというエラーが表示されただけです。
devlin carnate

デフォルトの名前を別の名前に変更してみますか?上で説明したプロセスで作成されているかどうかを確認しますか?
ラルフ

これは、IIS7.5(2008)からIIS10(2019)に移行するのに役立ちました。最初にAppcmdを実行すると、既に存在する「既定のWebサイト」でエラーが発生しました。名前の変更が機能しなかったため、デフォルトのWebサイトを削除しました。その後、インポートはエラーなしで実行されました。
MTAdmin
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.