Web 配置発行の Web サーバーを構成する (リモート エージェント)
作成者: Jason Lee
このトピックでは、IIS Web 配置ツール (Web 配置) リモート エージェント サービスを使用して、Web の発行と配置をサポートするようにインターネット インフォメーション サービス (IIS) Web サーバーを構成する方法について説明します。
Web 配置 2.0 以降を使用する場合、アプリケーションまたはサイトを Web サーバーに配置するために使用できる主なアプローチは 3 つあります。 次のことを実行できます。
- Web 配置リモート エージェント サービスを使用する。 この方法では、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 配置 2.1 以降をインストールします。
- 展開されたコンテンツをホストする IIS Web サイトを作成します。
- Web 配置エージェント サービスが実行されていることを確認します。
サンプルソリューションを具体的にホストするには、次のことも必要です。
- .NET Framework Version 4.0 をインストールします。
- ASP.NET MVC 3 をインストールします。
このトピックでは、これらの各手順を実行する方法について説明します。 このトピックのタスクとチュートリアルでは、Windows Server 2008 R2 を実行するクリーン サーバー ビルドから始めていることを前提としています。 次に進む前に、次のことを確認します:
- Windows Server 2008 R2 Service Pack 1 と使用可能なすべての更新プログラムがインストールされていること。
- サーバーがドメインに参加していること。
- サーバーに静的 IP アドレスがあること。
Note
コンピューターをドメインに参加させる方法の詳細については、「コンピューターをドメインに追加してログオンする」を参照してください。 静的 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 アプリケーションを実行するために必要なアセンブリがインストールされます。
Note
このチュートリアルでは、Web Platform Installer を使用して、必要なコンポーネントをインストールおよび構成する方法について説明します。 Web Platform Installer を使用する必要はありませんが、依存関係を自動的に検出し、常に最新の製品バージョンを取得できるようにすることで、インストール プロセスが簡略化されます。 詳細については、「Microsoft Web Platform Installer 3.0」を参照してください。
必要な製品とコンポーネントをインストールするには
Web Platform Installer をダウンロードしてインストールします。
インストールが完了すると、Web Platform Installer が自動的に起動します。
Note
[スタート] メニューからいつでも Web Platform Installer を起動できるようになりました。 これを行うには、[スタート] メニューの [すべてのプログラム] をクリックし、[Microsoft Web Platform Installer] をクリックします。
[Web Platform Installer 3.0] ウィンドウの上部にある [製品] を選択します。
ウィンドウの左側にあるナビゲーション ウィンドウで、[フレームワーク] をクリックします。
Microsoft .NET Framework 4 行で、.NET Framework がまだインストールされていない場合は、[追加] をクリックします。
Note
Windows Update を使用して .NET Framework 4.0 を既にインストールしている可能性もあります。 製品またはコンポーネントが既にインストールされている場合、Web Platform Installerは、[追加] ボタンを [インストール済み] というテキストに置き換えることで、これを示します。
ASP.NET MVC 3 (Visual Studio 2010) 行で、[追加] をクリックします。
ナビゲーション ウィンドウで、[サーバー] をクリックします。
[IIS 7 の推奨構成] 行で、[追加] を選択します。
[Web 配置ツール 2.1] 行で、[追加] をクリックします。
[インストール] をクリックします。 Web Platform Installer には、インストールされる製品の一覧と関連する依存関係が表示され、ライセンス条項に同意するように求められます。
ライセンス条項を確認し、ご契約条件に同意する場合は、[同意する] を選択します。
インストールが完了したら、[完了] を選択し、[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)。
Note
標準ポート番号は、HTTP の場合は 80、HTTPS の場合は 443 です。 ただし、ポート 80 でこの Web サイトをホストする場合は、サイトにアクセスする前に既定の Web サイトを停止する必要があります。
Web サイトのドメイン ネーム システム (DNS) レコードを構成する場合を除き、[ホスト名] ボックスは空白のままにし、[OK] をクリックします。
Note
運用環境では、ポート 80 で Web サイトをホストし、一致する DNS レコードと共にホスト ヘッダーを構成します。 IIS 7 でのホスト ヘッダーの構成の詳細については、「Web サイトのホスト ヘッダーの構成 (IIS 7)」を参照してください。 Windows Server 2008 R2 での DNS サーバーの役割の詳細については、「DNS サーバーの概要」を参照してください。
[ アクション ] ウィンドウの [ サイトの編集] の下にある [ バインド] をクリックします。
[サイト バインド] ダイアログ ボックスの [追加]をクリックします。
[サイト バインドの追加] ダイアログ ボックスで、既存のサイト構成に合わせて IP アドレスとポートを設定します。
[ホスト名] ボックスに、Web サーバーの名前 (TESTWEB1 など) を入力し、[OK] をクリックします。
Note
最初のサイト バインドを使用すると、IP アドレスとポート、 または
http://localhost:85
を使用してサイトにローカルでアクセスできます。 2 番目のサイト バインドでは、http://testweb1:85). などのコンピューター名を使用してドメイン上の他のコンピューターからサイトにアクセスできます[サイト バインド] ダイアログ ボックスの [閉じる]をクリックします。
[接続] ウィンドウで [アプリケーション プール] をクリックします。
[アプリケーション プール] ウィンドウで、アプリケーション プールの名前を右クリックし、[基本設定] をクリックします。 既定では、アプリケーション プールの名前は Web サイトの名前 (DemoSite など) と一致します。
NET Framework のバージョンの一覧で 、.NET Framework v4.0.30319 を選択し、[OK]をクリックします。
Note
サンプル ソリューションには .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 グループにアクセス許可を割り当てることです。この方法では、ファイル システムのアクセス許可を再構成せずにアプリケーション プールを変更できるためです。 次の手順では、このグループ ベースのアプローチを使用します。
Note
IIS 7.5 のアプリケーション プール ID の詳細については、「アプリケーション プール ID」を参照してください。
IIS Web サイトのフォルダーアクセス許可を構成するには
Windows Explorer で、ローカル フォルダーの場所を参照します。
フォルダーを右クリックし、[プロパティ] をクリックします。
[Security] タブで、[Edit]、[Add] の順にクリックします。
[場所] をクリックします。 [場所] ダイアログ ボックスで、ローカル サーバーを選択し、[OK] をクリックします。
[ユーザーまたはグループの選択] ダイアログ ボックスで、[IIS_IUSRS] と入力し、[名前の確認] をクリックして、[OK] をクリックします。
[(フォルダー名) のアクセス許可] ダイアログ ボックスで、新しいグループに既定で [読み取りおよび実行]、[フォルダーの内容の一覧表示]、 および [読み取りアクセス許可] が割り当てられていることに注意してください。 これは変更せずに、[OK] をクリックします。
[OK] をクリックして、[(フォルダー名) のプロパティ] ダイアログ ボックスを閉じます。
Web パッケージをサーバーに配置する前の最後のタスクとして、Web 配置エージェント サービスが実行されていることを確認する必要があります。 リモート コンピューターからパッケージを配置する場合、Web 配置エージェント サービスはパッケージの内容の抽出とインストールを行います。 Web 配置ツールをインストールし、ネットワーク サービス ID で実行すると、サービスは既定で開始されます。
さまざまなコマンド ライン ユーティリティまたは Windows PowerShell コマンドレットを使用して、サービスが複数の異なる方法で実行されているかどうかを確認できます。 このプロシージャでは、単純な UI ベースのアプローチについて説明します。
Web 配置エージェント サービスが実行されていることを確認するには
[スタート] メニューで、 [管理ツール]をポイントして、 [サービス]をクリックします。
[Web 配置エージェント サービス] 行を見つけて、[状態] が [開始] に設定されていることを確認します。
サービスがまだ開始されていない場合は、[開始] をクリックします。
ファイアウォール例外の構成
既定では、リモート エージェント サービスは次の URL で TCP ポート 80 でリッスンします。
http://servername.com/MSDEPLOYAGENTSERVICE
Web サーバーは通常、ポート 80 で HTTP 要求をリッスンするため、ほとんどの場合、リモート エージェント サービスの追加のファイアウォール規則を構成する必要はありません。 標準以外のポートでリッスンするようにインストールをカスタマイズした場合は、必要に応じてファイアウォールの例外を構成する必要があります。
まとめ
この時点で、Web サーバーはリモート コンピューターから Web パッケージを受け入れてインストールする準備が整います。 Web アプリケーションをサーバーにデプロイする前に、次の重要な点を確認することをおすすめします:
- ASP.NET 4.0 を IIS に登録しましたか?
- アプリケーション プール ID は、Web サイトのソース フォルダーへの読み取りアクセス権を持っていますか?
- Web 配置エージェント サービスは実行されていますか?
もっと読む
Web パッケージを リモート エージェント サービスに配置するようにカスタム Microsoft Build Engine (MSBuild) プロジェクト ファイルを構成する方法のガイダンスについては、「ターゲット環境の配置プロパティの構成」を参照してください。