このトピックでは、IIS Web 配置ツール (Web 配置) リモート エージェント サービスを使用して、Web の発行と展開をサポートするようにインターネット インフォメーション サービス (IIS) Web サーバーを構成する方法について説明します。
Web Deploy 2.0 以降を使用する場合、アプリケーションまたはサイトを Web サーバーに配置するために使用できる主なアプローチは 3 つあります。 次のようにすることができます。
- Web Deploy リモート エージェント サービスを使用します。 この方法では、Web サーバーの構成が少なくて済みますが、サーバーに何かを展開するには、ローカル サーバー管理者の資格情報を指定する必要があります。
- Web 配置ハンドラーを使用します。 この方法ははるかに複雑であり、Web サーバーを設定するためにより多くの初期作業が必要です。 ただし、この方法を使用する場合は、管理者以外のユーザーが展開を実行できるように IIS を構成できます。 Web 配置ハンドラーは、IIS バージョン 7 以降でのみ使用できます。
- オフライン展開を使用します。 この方法では、Web サーバーの最小構成が必要ですが、サーバー管理者は Web パッケージをサーバーに手動でコピーし、IIS マネージャーを使用してインポートする必要があります。
これらのアプローチの主な機能、利点、および欠点の詳細については、「 Web 配置に対する適切なアプローチの選択」を参照してください。
Web 配置リモート エージェントはあなたにとって適切なアプローチですか?
はい。コンテンツを展開するユーザーが、移行先サーバーで管理者の資格情報を指定できる場合。 この方法は、多くの場合、次の種類のシナリオで望ましいものです。
- 開発者が移行先の Web サーバーとデータベース サーバーを完全に制御できる開発環境またはテスト環境。
- 1 人のユーザーまたは少数のユーザー グループがアプリケーション ライフサイクル全体を制御できる小規模な組織。
多くの大規模な組織では、特にステージング環境や運用環境では、Web サーバーに対する管理者権限をユーザーに付与することは現実的ではありません。 ホストされた Web サーバーの場合、これは特にそうである可能性は低いです。 さらに、ビルド サーバーからのデプロイの自動化を計画している場合は、展開プロセスに管理者の資格情報を使用したくない場合があります。 これらのシナリオでは、Web 配置ハンドラー を使用したデプロイをサポートするように Web サーバーを構成すると、より満足のいく選択肢が得られます。
タスクの概要
このトピックでは、Web 展開リモート エージェントアプローチを使用して、リモート コンピューターから Web パッケージを受け入れて展開するようにインターネット インフォメーション サービス (IIS) 7.5 Web サーバーを構成する方法について説明します。 次のことを行う必要があります。
- IIS 7.5 と IIS 7 の推奨構成をインストールします。
- Web Deploy 2.1 以降をインストールします。
- 展開されたコンテンツをホストする IIS Web サイトを作成します。
- Web デプロイ エージェント サービスが実行されていることを確認します。
サンプル ソリューションを具体的にホストするには、次のことも必要です。
- .NET Framework 4.0 をインストールします。
- MVC 3 ASP.NET インストールします。
このトピックでは、これらの各手順を実行する方法について説明します。 このトピックのタスクとチュートリアルでは、Windows Server 2008 R2 を実行するクリーン なサーバー ビルドから始めていることを前提としています。 続行する前に、次のことを確認します。
- Windows Server 2008 R2 Service Pack 1 と使用可能なすべての更新プログラムがインストールされていること。
- サーバーはドメインに参加しています。
- サーバーに静的 IP アドレスがあること。
注
コンピューターをドメインに参加させる方法の詳細については、「コンピューターをドメインに追加してログオンする」を参照してください。 静的 IP アドレスの構成の詳細については、静的 IP アドレスを構成するに関する記事を参照してください。 リモート エージェント サービスは IIS 6 以降でサポートされており、ドメインに参加する必要はありません。 ただし、このチュートリアルの手順は IIS 7.5 で開発およびテストされており、他のバージョンの手順は異なる場合があります。
製品とコンポーネントのインストール
このセクションでは、必要な製品とコンポーネントを Web サーバーにインストールする方法について説明します。 開始する前に、Windows Update を実行して、サーバーが完全に最新であることを確認することをお勧めします。
この場合は、次のものをインストールする必要があります。
- IIS 7 推奨構成。 これにより、 Web サーバーで Web サーバー (IIS) の役割が有効になり、ASP.NET アプリケーションをホストするために必要な IIS モジュールとコンポーネントのセットがインストールされます。
- .NET Framework 4.0。 これは、このバージョンの .NET Framework 上に構築されたアプリケーションを実行するために必要です。
- Web 配置ツール 2.1 以降。 これにより、Web 配置 (およびその基になる実行可能ファイル MSDeploy.exe) がサーバーにインストールされます。 このプロセスの一環として、Web 展開エージェント サービスがインストールされ、開始されます。 このサービスを使用すると、リモート コンピューターから Web パッケージを展開できます。
- ASP.NET MVC 3 これにより、MVC 3 アプリケーションを実行するために必要なアセンブリがインストールされます。
注
このチュートリアルでは、Web プラットフォーム インストーラーを使用して、必要なコンポーネントをインストールおよび構成する方法について説明します。 Web プラットフォーム インストーラーを使用する必要はありませんが、依存関係を自動的に検出し、常に最新の製品バージョンを取得できるようにすることで、インストール プロセスが簡略化されます。 詳細については、「 Microsoft Web Platform Installer 3.0」を参照してください。
必要な製品とコンポーネントをインストールするには
Web プラットフォーム インストーラーをダウンロードしてインストールします。
インストールが完了すると、Web プラットフォーム インストーラーが自動的に起動します。
注
[スタート] メニューからいつでも Web プラットフォーム インストーラーを起動できるようになりました。 これを行うには、[ スタート ] メニューの [ すべてのプログラム] をクリックし、[ Microsoft Web プラットフォーム インストーラー] をクリックします。
[Web Platform Installer 3.0] ウィンドウの上部にある [製品] を選択します。
ウィンドウの左側にあるナビゲーション ウィンドウで、[ フレームワーク] をクリックします。
Microsoft .NET Framework 4 行で、.NET Framework がまだインストールされていない場合は、[追加] をクリックします。
注
Windows Update を使用して .NET Framework 4.0 を既にインストールしている可能性があります。 製品またはコンポーネントが既にインストールされている場合、Web プラットフォーム インストーラーは、[ 追加 ] ボタンを [インストール済み] というテキストに置き換えることで、これを示します。
ASP.NET MVC 3 (Visual Studio 2010) 行で、[追加] をクリックします。
ナビゲーション ウィンドウで、[ サーバー] をクリックします。
[IIS 7 推奨構成] 行で、[追加] を選択します。
Web 配置ツール 2.1 行で、[追加] をクリックします。
[インストール] をクリックします。 Web プラットフォーム インストーラーには、インストールされる製品の一覧と関連する依存関係が表示され、ライセンス条項に同意するように求められます。
ライセンス条項を確認し、ご契約条件に同意する場合は、[同意する] を選択します。
インストールが完了したら、[完了] を選択し、[Web Platform Installer 3.0] ウィンドウを閉じます。
IIS をインストールする前に .NET Framework 4.0 をインストールした場合は、 ASP.NET IIS 登録ツール (aspnet_regiis.exe) を実行して、最新バージョンの ASP.NET を IIS に登録する必要があります。 これを行わないと、IIS は問題なく静的コンテンツ (HTML ファイルなど) を提供しますが、ASP.NET コンテンツを閲覧しようとすると HTTP エラー 404.0 – Not Found が返されます。 この手順を使用して、ASP.NET 4.0 が登録されていることを確認できます。
ASP.NET 4.0 を IIS に登録するには
[ スタート] をクリックし、「 コマンド プロンプト」と入力します。
検索結果で、[ コマンド プロンプト] を右クリックし、[ 管理者として実行] をクリックします。
コマンド プロンプト ウィンドウで、 %WINDIR%\Microsoft.NET\Framework\v4.0.30319 ディレクトリに移動します。
次のコマンドを入力し、Enter キーを押します。
aspnet_regiis -iru任意の時点で 64 ビット Web アプリケーションをホストする予定の場合は、64 ビット バージョンの ASP.NET も IIS に登録する必要があります。 これを行うには、コマンド プロンプト ウィンドウで、 %WINDIR%\Microsoft.NET\Framework64\v4.0.30319 ディレクトリに移動します。
次のコマンドを入力し、Enter キーを押します。
aspnet_regiis -iru
この時点で Windows Update をもう一度使用して、インストールした新しい製品とコンポーネントの利用可能な更新プログラムをダウンロードしてインストールすることをお勧めします。
IIS Web サイトを構成する
Web コンテンツをサーバーに展開する前に、コンテンツをホストするように IIS Web サイトを作成して構成する必要があります。 Web 配置では、Web パッケージを既存の IIS Web サイトにのみ展開できます。Web サイトを作成することはできません。 大まかに言うと、次のタスクを完了する必要があります。
- コンテンツをホストするフォルダーをファイル システムに作成します。
- コンテンツを提供する IIS Web サイトを作成し、ローカル フォルダーに関連付けます。
- ローカル フォルダーのアプリケーション プール ID に読み取りアクセス許可を付与します。
IIS の既定の Web サイトにコンテンツを展開することを止めることはありませんが、この方法はテストシナリオやデモ シナリオ以外には推奨されません。 運用環境をシミュレートするには、アプリケーションの要件に固有の設定を含む新しい IIS Web サイトを作成する必要があります。
IIS Web サイトを作成して構成するには
ローカル ファイル システムで、コンテンツを格納するフォルダー ( C:\DemoSite など) を作成します。
[スタート] メニューの [管理ツール] をポイントし、[インターネット インフォメーション サービス (IIS) マネージャー] をクリックします。
IIS マネージャーの [ 接続 ] ウィンドウで、サーバー ノード ( TESTWEB1 など) を展開します。
[ サイト ] ノードを右クリックし、[ Web サイトの追加] をクリックします。
[ サイト名 ] ボックスに、IIS Web サイトの名前 ( DemoSite など) を入力します。
[ 物理パス ] ボックスに、ローカル フォルダー ( C:\DemoSite など) へのパスを入力 (または参照) します。
[ ポート ] ボックスに、Web サイトをホストするポート番号を入力します (例: 85)。
注
標準ポート番号は、HTTP の場合は 80、HTTPS の場合は 443 です。 ただし、ポート 80 でこの Web サイトをホストする場合は、サイトにアクセスする前に既定の Web サイトを停止する必要があります。
Web サイトのドメイン ネーム システム (DNS) レコードを構成する場合を除き、[ ホスト名 ] ボックスは空白のままにし、[ OK] をクリックします。
注
運用環境では、ポート 80 で Web サイトをホストし、一致する DNS レコードと共にホスト ヘッダーを構成する必要があります。 IIS 7 でのホスト ヘッダーの構成の詳細については、「 Web サイトのホスト ヘッダーの構成 (IIS 7)」を参照してください。 Windows Server 2008 R2 の DNS サーバーの役割の詳細については、「 DNS サーバーの概要」を参照してください。
[操作] ウィンドウの [サイトの編集] で、[バインド] をクリックします。
[ サイト バインド ] ダイアログ ボックスで、[ 追加] をクリックします。
[ サイト バインドの追加 ] ダイアログ ボックスで、既存のサイト構成に合わせて IP アドレス と ポート を設定します。
[ ホスト名 ] ボックスに、Web サーバーの名前 ( TESTWEB1など) を入力し、[OK] をクリック します。
注
最初のサイト バインドを使用すると、IP アドレスとポートまたは
http://localhost:85を使用してローカルでサイトにアクセスできます。 2 番目のサイト バインドでは、コンピューター名を使用してドメイン上の他のコンピューターからサイトにアクセスできます (例: http://testweb1:85).[ サイト バインド ] ダイアログ ボックスで、[ 閉じる] をクリックします。
[ 接続 ] ウィンドウで、[ アプリケーション プール] をクリックします。
[ アプリケーション プール ] ウィンドウで、アプリケーション プールの名前を右クリックし、[ 基本設定] をクリックします。 既定では、アプリケーション プールの名前は Web サイトの名前 ( DemoSite など) と一致します。
.NET Framework のバージョンの一覧で 、.NET Framework v4.0.30319 を選択し、[OK] をクリックします。
注
サンプル ソリューションには .NET Framework 4.0 が必要です。 これは、一般的に Web 配置の要件ではありません。
Web サイトがコンテンツを提供するためには、アプリケーション プール ID にコンテンツを格納するローカル フォルダーに対する読み取りアクセス許可が必要です。 IIS 7.5 では、アプリケーション プールは既定で一意のアプリケーション プール ID で実行されます (以前のバージョンの IIS とは異なり、アプリケーション プールは通常、ネットワーク サービス アカウントを使用して実行されます)。 アプリケーション プール ID は実際のユーザー アカウントではなく、ユーザーまたはグループの一覧には表示されません。代わりに、アプリケーション プールの起動時に動的に作成されます。 各アプリケーション プール ID は、非表示項目としてローカル IIS_IUSRS セキュリティ グループに追加されます。
ファイルまたはフォルダーのアプリケーション プール ID にアクセス許可を付与するには、次の 2 つのオプションがあります。
- IIS AppPool[アプリケーション プール名] の形式 (IIS AppPool\DemoSite など) を使用して、アプリケーション プール ID に直接アクセス許可を割り当てます。
- IIS_IUSRS グループにアクセス許可を割り当てます。
最も一般的な方法は、ローカル IIS_IUSRS グループにアクセス許可を割り当てることです。この方法では、ファイル システムのアクセス許可を再構成せずにアプリケーション プールを変更できるためです。 次の手順では、このグループベースのアプローチを使用します。
注
IIS 7.5 のアプリケーション プール ID の詳細については、「 アプリケーション プール ID」を参照してください。
IIS Web サイトのフォルダーアクセス許可を構成するには
Windows エクスプローラーで、ローカル フォルダーの場所を参照します。
フォルダーを右クリックし、[ プロパティ] をクリックします。
[ セキュリティ ] タブで、[ 編集] をクリックし、[ 追加] をクリックします。
[場所] をクリックします。 [ 場所 ] ダイアログ ボックスで、ローカル サーバーを選択し、[OK] をクリック します。
[ ユーザーまたはグループの選択 ] ダイアログ ボックスで、「 IIS_IUSRS」と入力し、[ 名前の確認] をクリックして、[ OK] をクリックします。
[ アクセス許可 (フォルダー名)] ダイアログ ボックスで、新しいグループに既定で 読み取りおよび実行、 フォルダーの内容の一覧表示、および 読み取り アクセス許可が割り当てられていることに注意してください。 これは変更せずに、[ OK] をクリックします。
[ OK] を クリックして、 (フォルダー名) の [プロパティ ] ダイアログ ボックスを閉じます。
Web パッケージをサーバーにデプロイする前の最後のタスクとして、Web 展開エージェント サービスが実行されていることを確認する必要があります。 リモート コンピューターからパッケージを展開する場合、Web 展開エージェント サービスはパッケージの内容の抽出とインストールを行います。 Web 展開ツールをインストールし、ネットワーク サービス ID で実行すると、サービスは既定で開始されます。
さまざまなコマンド ライン ユーティリティまたは Windows PowerShell コマンドレットを使用して、サービスが複数の異なる方法で実行されているかどうかを確認できます。 この手順では、単純な UI ベースのアプローチについて説明します。
Web デプロイ エージェント サービスが実行されていることを確認するには
[スタート] メニューの [管理ツール] をポイントし、[サービス] をクリックします。
[Web Deployment Agent Service] 行を見つけて、[状態] が [開始] に設定されていることを確認します。
サービスがまだ開始されていない場合は、[ 開始] をクリックします。
ファイアウォール例外の構成
既定では、リモート エージェント サービスは次の URL で TCP ポート 80 でリッスンします。
http://servername.com/MSDEPLOYAGENTSERVICE
Web サーバーは通常、ポート 80 で HTTP 要求をリッスンするため、ほとんどの場合、リモート エージェント サービスの追加のファイアウォール規則を構成する必要はありません。 標準以外のポートでリッスンするようにインストールをカスタマイズした場合は、必要に応じてファイアウォールの例外を構成する必要があります。
結論
この時点で、Web サーバーはリモート コンピューターから Web パッケージを受け入れてインストールする準備が整います。 Web アプリケーションをサーバーにデプロイする前に、次の重要な点を確認できます。
- ASP.NET 4.0 を IIS に登録しましたか?
- アプリケーション プール ID は、Web サイトのソース フォルダーへの読み取りアクセス権を持っていますか?
- Web 配置エージェント サービスは実行されていますか?
もっと読む
Web パッケージをリモート エージェント サービスに展開するようにカスタム Microsoft ビルド エンジン (MSBuild) プロジェクト ファイルを構成する方法のガイダンスについては、「 ターゲット環境の展開プロパティの構成」を参照してください。