投稿者: Bilal Aslam
概要
Web 配置は、Web アプリケーション、サイト、サーバーの移行、管理、配置を簡略化するためのツールです。 コンテンツ、構成、証明書、データベースを自動的に含む Web サイトをパッケージ化するために使用できます。 IIS 6.0 または IIS 7.0 間の同期、または IIS 6.0 から IIS 7.0 への移行に使用できます。 作成されたパッケージは、バージョン管理、バックアップ、配置に使用できます。
IIS 8.0 は Web 配置 V3 でのみサポートされることに注意してください。
機能
Web 配置には、次の主要な機能が含まれています。
Web サイトとアプリケーションをパッケージ化します。 開発者または管理者は、SQL データベースを含むインストール済み Web アプリケーションの構成とコンテンツをパッケージ化し、そのパッケージをストレージや再配置に使用できます。 その後、これらのパッケージは、リモート サーバーに対する管理特権を必要とせずに、IIS マネージャー インターフェイスを使用して配置できます。
配置タスクを管理者以外に委任します。 サーバー管理者は、管理者ではないユーザーに配置タスクを委任することを選択できるようになりました。 たとえば、共有ホスティングとエンタープライズの両方の環境で、コンテンツを配置することやフォルダーをアプリケーションとしてマークすることを委任できます。 また、証明書、Web サイト、GAC に格納されたアセンブリの配置を許可するなど、専用環境に適したより高度なタスクを有効にすることもできます。
管理者向けに配置を簡略化します。 GAC に格納されたアセンブリ、証明書、アプリケーション プールを含む Web アプリケーションの配置は、必要なすべてのアクセス許可を持っていても時間がかかる場合があるため、サーバー管理者は委任が役立つことがわかります。
IIS 6.0 からの移行。 移行操作により、サイトまたはサーバー全体を設定とコンテンツを含めて IIS 6.0 から IIS 7 以降、IIS 7 から IIS 8 に移行する方法が管理者に提供されます。 移行は、基本的に同期の一手段であり、移行規則によってフィルター処理されます。
IIS 6.0/IIS 7.0 の同期。 同期操作により、サイトまたはサーバーをすばやく同期し、既存のサイトとサーバーに変更内容を配置する方法が管理者に提供されます。 同期を使用すると、1 つのソースを 1 つの同期先と同期できます。 たとえば、2 つのディレクトリ パスまたは 2 つの Web サーバーを同期できます。 同期は、ローカルまたはリモートのオブジェクトで実行できます。
スナップショット IIS 6.0/ IIS 7.0。 スナップショット (アーカイブ) 機能を使用すると、管理者や開発者は、ロールバック、復元、またはバックアップの目的で Web サイトまたはサーバーのアーカイブをすばやく取得できます。
IIS 6.0/IIS 7.0 への依存関係の分析。 分析操作により、管理者はソース サーバーにインストールされているコンポーネントを確認できます。 これにより、IIS 7.0 に必要な機能が存在するか、単にファイルをコピーするよりも高度なセットアップが必要かを判断できます。
トラブルシューティングと検証。 操作を検証する場合は、-whatif パラメーターを使用すると、管理者は操作の実行時に発生するアクションを確認できます。 これは、同期または移行を実行する前に、行われる変更を検証する場合に特に便利です。 トラブルシューティングを行う場合、-verbose パラメーターを使用すると、管理者は、実行されている操作に関する豊富な詳細を取得でき、失敗時には問題を診断する機能を利用できます。
差分同期。 ツールでは、ソースと同期先の間で変更された内容のみが同期されます。
Installation Notes (SAP サポート ノート #1984787 – SUSE Linux Enterprise Server 12: インストールに関する注意事項)
要件
ツールをインストールするには、次の前提条件を満たす必要があります。
- .NET 2.0 SP1 以降がインストールされている必要があります。
ダウンロードとインストール
このツールには 2 つの別個のダウンロード可能パッケージがあり、適切なパッケージをダウンロードする必要があります。
https://www.iis.net/download/WebDeploy
インストール パッケージは管理者として実行する必要があります。 これは、次のいずれかの方法で行うことができます。
- "Administrator" という名前の実際のアカウントを使用してサーバーにログインします。
- 管理者特権を持つアカウントを使用してログオンし、Windows プログラムの [アクセサリ] メニューにある [コマンド プロンプト] メニュー項目を右クリックし、[管理者として実行] を選択してコマンド プロンプトを開き、インストールを実行するお使いの Windows のバージョンに応じて以下の適切なコマンドを入力します。
msiexec /I <path_to_msi>
msiexec /I <path_to_msi>
重要な注意! 既定では、セットアップではリモート サービスをインストールする選択肢が提供され、既定のリモート サービス URL である http://+:80/MSDEPLOY. が使用されます。
コマンド ラインからセットアップを実行することで、リモート サービス URL をカスタム URL に設定できます (ポートと URL が指定されている場合は、カスタマイズしてください)。
msiexec /i <path_to_msi> /passive ADDLOCAL=ALL LISTENURL=http://+:8080/MSDEPLOY2/
既知の問題
問題: Web 配置が Web 配置 2.0 にアップグレードされた後に一部の管理サービス委任規則が機能しません
IIS 7 以降のサーバーが共有構成を使用している場合、runAs ID が SpecificUser に設定されている特定の委任規則の動作が停止します。 これは、Web 配置インストーラーと .\AddDelegationRules.ps1 スクリプトによってローカル コンピューター ユーザー アカウントが作成され、特定の委任規則で runAs ID として設定されるためです。 これらのユーザー アカウントは他のマシンでは認識されないため、この規則は共有構成では機能しません。
回避策:
- Web 配置 2.0 を Web プラットフォーム インストーラーを使用してインストールすることはしないでください。 代わりに、MSI から直接インストールし、[管理者以外の配置の構成] コンポーネントの選択を解除します
- 委任規則が既に上書きされている場合は、手動で再作成します。
問題: .\SetupSite.ps1 PowerShell スクリプトで作成されたサイトを参照できない
このスクリプトでは、サイトの作成時に、まだ取得されていない 8000 から 8200 までのポート番号を割り当てようとします。 空きポートが使用できない場合があります。その場合、このサイトに割り当てられたポートは動作しません。 また、場合によっては、サイトに割り当てられているポートがファイアウォールによってブロックされている可能性があります。
回避策: サイトを IIS マネージャー UI とは異なるポートに手動で割り当てます。 また、"netsh advfirewall firewall add rule name="MySite" dir=in action=allow protocol=TCP localport=8080" コマンドを実行して、Windows Server 2008 R2 などのファイアウォールによってポートがブロックされていないことを確認します。MySite はサイトの名前に置き換えられます。
問題: SetupSiteForPublish.ps1 PowerShell スクリプトで作成されたサイト、または [Configure for Web Deploy Publishing...]\(Web 配置の発行を構成\) UI を使用して Web 配置公開用に構成されたサイトに公開することができません
サイト作成スクリプトと、既存のサイトの Web 配置を構成する UI を使用すると、発行 URL は https://myserver:8172/msdeploy.axd
に設定されます。 このコンピューター名は通常、ネットワーク内で到達可能です。 ただし、これはネットワークの外部からは到達できないことが多いため、パブリック DNS 名に置き換える必要があります。
回避策:
- スクリプト使用時: スクリプトではこのエラーについて警告が出ません。 生成された設定ファイルの URL を (以下のように) 正しいものに置き換えます。
- UI 使用時: パブリック DNS 名を [Specify the URL for the publishing server connection]\(発行サーバー接続の URL を指定する\) フィールドに入力します (例: 「
https://myserver:8172/msdeploy.axd
」の代わりに「https://some.publicDnsName.com:8172/msdeploy.axd
」と入力)
問題: Web 配置で数分間 CPU の時間がすべて消費される
ログ レベルを高く設定しすぎると、同期操作の進行中に Web 配置によってすべての CPU が消費されます。 これは、ログ レベルが詳細 (4) または情報 (3) に設定されている場合に発生する可能性があります。
回避策: ログ レベルを低く設定します。
- レジストリ エディターを起動します。
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\IIS Extensions\MSDeploy\2\WMSVCTracing に移動し、必要に応じて 1 または 2 に設定します。
- 管理者特権でコマンド プロンプトを開き、「net stop wmsvc」と入力し、「net start wmsvc」と入力して、Web 管理サービスを再起動します。
問題: IIS マネージャーの Web 配置 UI に [Unable to cast object of type]\(型のオブジェクトをキャストできません\) エラーが表示されます
対象のコンピューターに Web Deploy v1.1 がインストールされていて、ソース コンピューターに v2 がインストールされている場合、このエラーが表示されることがあります。 これは、バージョン間の互換性がありません。
回避策:
- ソース コンピューターを Web Deploy v2 にアップグレードします
- ソース コンピューター上のすべてのバージョンの Web Deploy をアンインストールします
問題: Web 配置でリモート サーバーから USN 番号を取得できない
"増分" スイッチを dirPath プロバイダーと共に使用すると、増分同期を可能にするために将来の同期で使用される USN 番号が返されます。
例: msdeploy -verb:dump -source:dirpath=c:\Temp –incremental
結果: c:\Temp
情報: ソース パス 'c:\Temp' を同期するための USN 番号は '2140379512' です。
ただし、ソースがリモートの場合、その操作をしても USN 番号は返されません。 これは、Web 配置 v2 がリモート サーバーからの USN 番号の取得をサポートしていないためであり、既知の制限です。
回避策: 別のツールを使用して、リモート サーバーから USN 番号を取得します。
問題: IIS 6.0 マシンを多数のサイトと同期している (メタベースが 500 MB を超えている) 場合、ツールがハングして応答を停止することがあります。
回避策: サイトの一覧を作成し、各サイトを個別に同期します。
問題: あるマシンからリモート マシンに同期していて、そのコンテンツまたは共有構成が 3 台目の別個のマシン (例: UNC) にある場合、リモート エージェントが正しく認証できなくなります。
回避策: 手動で同期するか、代わりに Web Deployment Handler を使用します。
問題: 何らかのループがあるフォルダーをパッケージ化またはアーカイブしようとすると (パッケージ化しているフォルダー内にパッケージを作成しようとしている場合など)、ツールがクラッシュしたりハングしたりする場合がある。
回避策: ループされたフォルダーは同期しないでください。
問題: 100 を超えるサブディレクトリ (1\2\3..\100\101) と Web サイトを同期している場合、ツールがハングする場合がある。
回避策: 120 個のサブディレクトリがある深いフォルダー構造は同期しないでください。
問題: 共有構成設定 (共有構成の有効化や無効化など) を変更すると、後でリモート エージェントを再起動する必要があります。
回避策: 共有構成に変更を行った後、エージェントを再起動します。
問題: パスが %systemdrive%\wwwroot
である Web サイトを、システム ドライブが異なる (D: ではなく C:) 同期先 Web サイトに同期している場合は、Web サイトのパスが同期先で展開されます。 つまり、異なるシステム ドライブで共有構成を保持していて、コンテンツを確実に機能させるために %systemdrive%
に依存している場合は、マシン上のサイトを破損させるおそれがあります。
回避策: 同期中にパスを変更する置換規則を追加します。
問題: IIS 6.0 マシンを多数のサイトと同期している (メタベースが 500 MB を超えている) 場合、ツールがハングして応答を停止することがあります。
回避策: サイトの一覧を作成し、各サイトを個別に同期します。
問題: IIS 6.0 でアプリケーションとしてマークされたフォルダーをアーカイブまたはパッケージに同期している場合、コンテンツが自動的に収集されないことがある。
回避策: コンテンツ フォルダーをカスタム マニフェストに手動で追加し、マニフェストを同期します。 マニフェスト ファイルの作成の詳細については、ヘルプを参照してください。
問題: 既存のパッケージ ファイルにパッケージ化しようとすると、正しく機能しない場合があります。
回避策: 新しい名前を使用するか、新しいパッケージの作成前に古いパッケージ ファイルを削除します。
問題: Microsoft Web 配置で、Web サービス拡張機能の制限一覧で参照されているスクリプト マップおよび項目の物理ファイルが、Web サイトのコンテンツ ディレクトリに配置されていなければ、移動されません。 これは、次のような多くの ISAPI が正しく移行されないおそれがあるためです。
- ASP.NET (インストールが必要)。
- WebDAV (既定では Windows Server 2008 には含まれず、追加のインストールが必要)。
- FrontPage Server Extensions (既定では Windows Server 2008 には含まれず、追加のインストールが必要)。
回避策: 回避策: インストールを必要としないスクリプト マップやファイルがあれば、マニフェスト ファイルに手動で含めます。 マニフェスト ファイルの作成の詳細については、ヘルプを参照してください。
問題: ルート レベルの Web.config およびコード アクセス セキュリティ (CAS) ポリシー設定で参照されているカスタム信頼ファイルは移動されません。
回避策: マニフェスト ファイルに、カスタム信頼ファイルと CAS ポリシー ファイル (security.config) を手動で指定します。 マニフェスト ファイルの作成の詳細については、ヘルプ ファイルを参照してください。
問題: 信頼レベルが異なるサーバーにサイトを移動した場合に、警告が表示されません。
回避策: サイト レベルの同期または移行を行う場合は、宛先マシンで信頼レベルが正しく設定されていることを確認してください。
問題: 無効なソースを指しているカスタム マニフェスト ファイルがある場合、エラーが表示されないことがあります。
回避策: マニフェスト ファイルの使用時に想定した出力が表示されない場合は、各項目を個別に試して、それらが誤って入力されたか、無効であるかを調べます。
問題: FTP と SMTP が webserver60 の既定の定義に含まれていません。
回避策: これらの場所を同期する必要がある場合は、メタキー プロバイダー (つまり、metakey=lm/msftpsvc) を使用して手動で同期します。
問題: 継承されたプロパティが、IIS 6.0 のサイト移行で移行されません。 一般的な例は、このプロパティを継承しているすべてのサイトにおけるサーバー レベルでの認証設定です。 1 つのサイトを移行すると、現在は新しい宛先サーバーの設定が継承されるようになります。 宛先サーバーの設定が同じでない場合は、サイトが破損するおそれがあります。 これは、MIME マップ、スクリプト マップなど、継承されたすべてのプロパティに適用されます。
回避策: IIS 6.0 で Web サイトを同期または移行するときに、metadataGetInherited フラグを使用して、継承された設定をサイト レベルにコピーします。 または、ソースと宛先のサーバーでサーバー設定が同じであることを確認するか、正しい設定を使用するようにサイトを手動で設定します。
インストールの問題のトラブルシューティング
インストール中に問題が発生した場合は、お使いのバージョンの Windows 用の以下に示す適切なコマンドを実行して、インストール プロセスに関する情報を含むログ ファイルを作成できます。
msiexec /L msdeployinstall.log /I <path_to_msi>
msiexec /L msdeployinstall.log /I <path_to_msi>
インストールが失敗したら、このログ ファイルを分析して、失敗の原因の特定に役立てることができます。
詳細情報
次の Web 配置に関する追加リソースは、IIS.net で利用できます。
- Web 配置のチュートリアル。 Web 配置をダウンロードしてインストールする方法、同期または移行の操作に使用する方法などについて説明しています。
- また、必ず Web 配置チームのブログに関するページにアクセスして、ツールに関するヒント、テクニック、最新情報を入手してください。
© 2007 – 2011 Microsoft Corporation.