Microsoft Web Deploy v3 Readme
作成者: Harsh Mittal
概要
Web 配置は、Web アプリケーション、サイト、サーバーの移行、管理、配置を簡略化するためのツールです。 コンテンツ、構成、証明書、データベースを自動的に含む Web サイトをパッケージ化するために使用できます。 これを使用して、IIS 6.0、IIS 7.x、IIS 8.0 間の同期や IIS 6.0、IIS 7.x から IIS 7.x 以降への移行を行うことができます。 作成されたパッケージは、バージョン管理、バックアップ、配置に使用できます。
機能
Web 配置には、次の主要な機能が含まれています。
Web サイトとアプリケーションのパッケージ化: 開発者または管理者は、SQL データベースを含むインストール済み Web アプリケーションの構成とコンテンツをパッケージ化し、そのパッケージをストレージや再配置に使用できます。 その後、これらのパッケージは、リモート サーバーに対する管理特権を必要とせずに、IIS マネージャー インターフェイスを使用して配置できます。
配置タスクを管理者以外に委任します。 サーバー管理者は、管理者ではないユーザーに配置タスクを委任することを選択できます。 たとえば、共有ホスティングとエンタープライズの両方の環境で、コンテンツを配置することやフォルダーをアプリケーションとしてマークすることを委任できます。 また、証明書、Web サイト、GAC に格納されたアセンブリの配置を許可するなど、専用環境に適したより高度なタスクを有効にすることもできます。
管理者向けに配置を簡略化します。 GAC に格納されたアセンブリ、証明書、アプリケーション プールを含む Web アプリケーションの配置は、必要なすべてのアクセス許可を持っていても時間がかかる場合があるため、サーバー管理者は委任が役立つことがわかります。
IIS 6.0 および IIS 7 からの移行: 移行操作により、サイトまたはサーバー全体を設定とコンテンツを含めて IIS 6.0 から IIS 7 以降、IIS 7 から IIS 8 に移行する方法が管理者に提供されます。 移行は、基本的に同期の一手段であり、移行規則によってフィルター処理されます。
IIS 6.0/IIS 7/IIS8.0 の同期: 同期操作により、サイトまたはサーバーをすばやく同期し、既存のサイトとサーバーに変更内容を配置する方法が管理者に提供されます。 同期を使用すると、1 つのソースを 1 つの同期先と同期できます。 たとえば、2 つのディレクトリ パスまたは 2 つの Web サーバーを同期できます。 同期は、ローカルまたはリモートのオブジェクトで実行できます。
スナップショット IIS 7.0 以降: スナップショット (アーカイブ) 機能を使用すると、管理者や開発者は、ロールバック、復元、またはバックアップの目的で Web サイトまたはサーバーのアーカイブをすばやく取得できます。 自動スナップショット機能を使用すると、Web サイト管理者は上記のタスクの一部をセルフサービスで実行することもできます。
IIS 6.0 以降の依存関係の分析: 分析操作により、管理者はソース サーバーにインストールされているコンポーネントを確認できます。 これにより、IIS 7.0 に必要な機能が存在するか、単にファイルをコピーするよりも高度なセットアップが必要かを判断できます。
トラブルシューティングと検証。 操作を検証する場合は、-whatif パラメーターを使用すると、管理者は操作の実行時に発生するアクションを確認できます。 これは、同期または移行を実行する前に、行われる変更を検証する場合に特に便利です。 トラブルシューティングを行う場合、-verbose パラメーターを使用すると、管理者は、実行されている操作に関する豊富な詳細を取得でき、失敗時には問題を診断する機能を利用できます。
差分同期。 ツールでは、ソースと同期先の間で変更された内容のみが同期されます。
PowerShell を使用した簡単なスクリプト作成: 一般的な Web 配置タスクは、PowerShell コマンドレットを使用して自動化できます。
Installation Notes (SAP サポート ノート #1984787 – SUSE Linux Enterprise Server 12: インストールに関する注意事項)
要件
ツールをインストールするには、次の前提条件を満たす必要があります。
·.NET 2.0 SP1 以降がインストールされている必要があります。
ダウンロードとインストール
このツールには 2 つの別個のダウンロード可能パッケージがあり、適切なパッケージをダウンロードする必要があります。 (x86) または (x64) バージョンをダウンロードできます。
このリリースで修正された重要な問題:
変更: 以前のバージョンの Web 配置では、tempAgent サービスは常にポート 80 で実行されます。 Web Deploy v3 RC では、このポートを変更できます。方法は、computername=serverName:####, tempagent=true (ここで #### は使用するポート番号) を使用して、computername 引数に新しいポートを指定します
変更: -useCheckSum オプションの使用時に -whatif 操作に対する変更数が正確ではないという Web 配置の問題を修正しました。
変更: Web Deploy V3 ではプロキシ設定が自動的に無効になります。 これは、同期を開始する前に Internet Explorer を開き、そこでプロキシ設定を無効にする必要がある一部のクライアントにとって以前は問題でした。
変更: 証明書同期ロジックでの IPv6 スタイルのバインドのサポートが追加されました。 以前のバージョンでは、IPv6 バインドを正しく同期できませんでした。
変更: 親レジストリ キーが存在しないサーバーに子レジストリ キーを同期すると、同期が失敗するのではなく、子キーまでの親レジストリ キーが (値なしで) 作成されるようになります。 たとえば、レジストリ キー HKEY_LOCAL_MACHINE\SOFTWARE\MySoft\TestWeb1 を同期する際、同期先マシンに MySoft キーが存在しない場合は、MySoft キーが同期先マシンに作成され、同期は成功するようになります。
変更: 場合によっては、Web 配置の発行により、サイトのルート フォルダーに対する継承されたアクセス許可が削除されました。 Web Deploy V3 では、この問題が修正されています。
既知の問題
問題: Web Deploy v3 のアップグレードで、Web Deploy v2 を使用して動作していた SQLite 同期が中断されます
Web Deploy v3 実行可能ファイルの既定の構成ファイル (msdeploy.exe.config と msdepsvc.exe.config) が .Net 2.0 から .Net 4.0 に更新されたため、この中断が生じます。
対処法:
- SQLite には、.Net 4 互換バージョンがあります。 このリリースの sqlite3.exe を "%ProgramFiles%\IIS\Microsoft Web Deploy V3" ディレクトリにコピーすると、問題は解決します。
- 下記に示すように、WebDeploy V3 msdeploy.exe.config の既定の .Net バージョンを .Net 2.0 に変更します
<configuration>
<startup>
<supportedRuntime version="v2.0.50727" />
<supportedRuntime version="v4.0" />
</startup>
</configuration>
問題: Web 配置エージェント サービスが、管理者ユーザー アカウントではないローカル ユーザー アカウントでは機能しないが、Administrators グループのメンバーであるローカル ユーザー アカウントでは機能します。 ERROR_USER_NOT_ADMIN エラーが返されます。
リモート エージェント サービスでは、ビルトイン Administrator またはドメイン管理者の資格情報が受け入れられ、その他の管理者資格情報は機能せず、このエラーが発生します。
対処法:
ビルトイン Administrator アカウントまたはドメイン ユーザー アカウント (ローカル コンピューターの管理者グループの一員) を使用します。リモート エージェント サービスでは、ビルトイン Administrator またはドメイン管理者の資格情報が受け入れられます。 非ドメインのセットアップがあり、ビルトイン Administrator 以外のアカウントを使用する必要がある場合は、以下を実行してください。
- リモート コンピューター上に別のユーザー グループ MSDepSvcUsers を作成します。
- ローカルとリモートの両方のコンピューターでローカル アカウント A を作成します。
- リモート コンピューターで MSDepSvcUsers に A を追加します。
- アカウント A を使用して発行します。これにより、ビルトイン管理者アカウントを使用せずに発行できます。
問題: Web 配置が Web 配置 3.0 にアップグレードされた後に一部の管理サービス委任規則が機能しません
IIS 7 以降のサーバーが共有構成を使用している場合、runAs ID が SpecificUser に設定されている特定の委任規則の動作が停止します。 これは、Web 配置インストーラーと .\AddDelegationRules.ps1 スクリプトによってローカル コンピューター ユーザー アカウントが作成され、特定の委任規則で runAs ID として設定されるためです。 これらのユーザー アカウントは他のマシンでは認識されないため、この規則は共有構成では機能しません。
回避策:
·委任規則が既に上書きされている場合は、影響を受けた規則を手動で再作成します。
問題: 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 Deploy V3 で作成されたパッケージが WebDeploy V2 で動作しません。 その結果、System.NullReferenceException が発生します。
回避策:
- 対象のコンピューターを Web Deploy v3 にアップグレードします
- Web Deploy V2 を使用してパッケージを作成します。
問題: IIS マネージャーの Web 配置 UI に [Unable to cast object of type]\(型のオブジェクトをキャストできません\) エラーが表示されます
対象のコンピューターに Web Deploy v1.1 がインストールされていて、ソース コンピューターに v2 がインストールされている場合、このエラーが表示されることがあります。 これは、バージョン間の互換性がありません。
回避策:
- ソース コンピューターを Web Deploy v2 にアップグレードします
- ソース コンピューター上のすべてのバージョンの Web Deploy をアンインストールします
問題: IIS 6.0 マシンを多数のサイトと同期している (メタベースが 500 MB を超えている) 場合、ツールがハングして応答を停止することがあります。
対処法:
サイトの一覧を作成し、各サイトを個別に同期します。
問題: あるマシンからリモート マシンに同期していて、そのコンテンツまたは共有構成が 3 台目の別個のマシン (例: UNC) にある場合、リモート エージェントが正しく認証できなくなります。
対処法:
手動で同期するか、代わりに Web Deployment Handler を使用します。
問題: 共有構成設定 (共有構成の有効化や無効化など) を変更すると、後でリモート エージェントを再起動する必要があります。
対処法:
共有構成に変更を行った後、エージェントを再起動します。
問題: パスが %systemdrive%\wwwroot
である Web サイトを、システム ドライブが異なる (D: ではなく C:) 同期先 Web サイトに同期している場合は、Web サイトのパスが同期先で展開されます。 つまり、異なるシステム ドライブで共有構成を保持していて、コンテンツを確実に機能させるために %systemdrive%
に依存している場合は、マシン上のサイトを破損させるおそれがあります。
対処法:
同期中にパスを変更する置換規則を追加します。
問題: 既存のパッケージ ファイルにパッケージ化しようとすると、正しく機能しない場合があります。
対処法:
新しい名前を使用するか、新しいパッケージの作成前に古いパッケージ ファイルを削除します。
問題: 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 配置チームのブログに関するページにアクセスして、ツールに関するヒント、テクニック、最新情報を入手してください。