Web 配置の概要

著者: Harsh Mittal

Web 配置とは

Web 配置は、コンテンツと構成を IIS に同期するための拡張可能なクライアント/サーバー ツールです。 Web 配置は、主に次の 2 つのシナリオで使用されます。

  1. 開発者はこれを使用して、コンパイル済みの Web アプリケーション (ASP.Net、PHP など) を開発者ツール (Visual Studio、WebMatrix など) から IIS に同期 ("公開") します
  2. IT プロフェッショナルは、IIS6 などの古いバージョンの IIS を実行しているオペレーティング システムから、IIS 7.5 などの新しいバージョンの IIS を実行しているオペレーティング システムに Web サイトとアプリケーションを移行するためにこれを使用します。

Diagram that shows the path from Source to Destination. Between those points are Websites, Databases, and Configuration.

Web 配置と FTP の比較

Web 配置は、FTP、XCOPY、RoboCopy などのテクノロジと比較されることがよくあります。 これらのテクノロジは便利ですが、Web 配置にはいくつかの利点があります。

Web 配置と FTP との比較を次に示します。

  1. Web 配置は FTP よりも高速です。 Web 配置では、操作ごとに異なるコマンドは発行されません。 代わりに、同期の開始時に比較が行われ、変更のみが転送されます。
  2. Web 配置はセキュリティで保護されています。 Web 配置では、HTTPS 経由の転送がサポートされています。 SFTP や FTPS などの FTP のバリアントもセキュリティで保護されていることに注意してください。
  3. Web 配置では、リンク先ファイルとディレクトリにセキュリティ記述子 (ACL) を設定できます。 たとえば、Web 配置を使用して、展開時にアプリケーションの "ダウンロード" フォルダーへの特定のアクセス権を Windows ユーザーに付与できます。
  4. Web 配置では、データベースを公開できます。 Web 配置では、SQL Server、MySQL Server、Sqlite、SQL Server Compact データベースのスクリプトを作成し、同期中に結果のスクリプトを適用するための既定のサポートが提供されています。これは、アプリが機能するためにデータベースが必要な場合に非常に便利です。
  5. Web 配置では、展開時に変換を適用できます。 Web 配置を使用して、同期中に接続文字列またはアプリケーション設定を変更できます。Web 配置では、IIS 設定の変換など、さまざまな変換がサポートされています。
  6. Web 配置は、Visual Studio 2010 および WebMatrix と統合されます。
  7. Web 配置は拡張可能です。 Web 配置には、新しいシナリオを作成できる、公開されている豊富な拡張性モデルがあります。

それはどのように機能しますか?

Diagram that shows the path from Source to Destination for Admin and another path for Admin and Non Admin.

ほとんどの Web 配置操作は、同期元と同期先の間の同期操作を中心にモデル化されています。 同期操作は、以下で説明するように、1 つ以上の Web 配置プロバイダーを使用して Web 配置フレームワークによって調整されます。

フレームワーク

Web 配置は、接続状態を管理し、同期元と同期先間の同期を調整するフレームワークで構成されます。 たとえば、フレームワークは、特定の種類のコンテンツの同期のスキップ、ルールの実行、ファイルの変換を行う役割を担います。

フレームワークには、パブリック API とコマンド ライン実行可能ファイル msdeploy.exe を介してアクセスできます。

プロバイダー

Web 配置では、フレームワークに接続する組み込みプロバイダーを使用して、2 つの場所間で任意の種類のデータを同期できます。 プロバイダーは、2 つのソース間で特定の種類のデータを同期したり、データ ソースに関する有用な情報を取得したりする方法を認識しています。

たとえば、Web 配置には、SQL Server データベース全体を別のサーバーに同期できる、SQL データベースと連携するプロバイダー (dbFullSql) があります。 他の組み込みプロバイダーは、MySQL データベース (dbMySql)、IIS 7 構成 (appHostConfig)、GAC アセンブリ (gacAssembly)、または COM オブジェクト (comObject32/comObject64) を同期します。 詳細な一覧は TechNet で確認できます。

プロバイダー モデルは拡張可能であり、開発者はカスタム データを同期する必要がある場合に Web 配置用の独自のプロバイダーを作成できます。

しくみ

同期元で Web 配置を使用してアクションを開始すると、Web 配置フレームワークによって同期先との接続が確立されます。 Web 配置では 2 つの接続エンドポイントがサポートされており、使用するものは以下のようにいくつかの要因によって異なります。

Diagram that shows a decision tree for an I I S 7 destination.

  • 同期先が IIS6 を実行している Windows Server 2003 の場合は、そのWeb Deployment Agent Service (リモート エージェント サービスとも呼ばれる) エンドポイントに接続できます。 リモート エージェント サービスは、この接続のセキュリティを提供し、管理者ユーザーのみがアクセスできます。
  • 同期先が IIS7 を実行している Windows Server 2008 または IIS7.5 を実行している Windows Server 2008 R2 で、管理者以外の資格情報で接続する場合は、Web 管理サービス エンドポイントに接続する必要があります。 Web 配置では、Web 管理サービスにハンドラーがインストールされます。これにより、管理者以外のユーザーが、Web 管理サービスを使用して認証と承認を行った後に展開できるようになります。
  • 同期先が IIS7 を実行している Windows Server 2008 または IIS7.5 を実行している Windows Server 2008 R2 で、管理者の資格情報で接続する場合は、どちらのエンドポイントに接続しても構いません。

詳細情報

iis.net のチュートリアルtechnet のドキュメントを参照してください。