Web 配置発行の Web サーバーを構成する (オフライン配置)

作成者: Jason Lee

このトピックでは、オフラインの Web 発行と配置をサポートするように IIS Web サーバーを構成する方法について説明します。

インターネット インフォメーション サービス (IIS) Web 配置ツール (Web 配置) 2.0 以降を使用する場合、アプリケーションまたはサイトを Web サーバーに配置するために使用できる主な方法は 3 つあります。 次のことを実行できます。

  • Web 配置リモート エージェント サービスを使用する。 この方法では、Web サーバーの構成が少なくて済みますが、サーバーに何かを展開するには、ローカル サーバー管理者の資格情報を指定する必要があります。
  • Web 配置ハンドラーを使用する。 この方法ははるかに複雑であり、Web サーバーを設定するためにより多くの初期作業が必要です。 ただし、この方法を使用すると、管理者以外のユーザーが展開を実行できるように IIS を構成できます。 Web 配置ハンドラーは、IIS バージョン 7 以降でのみ使用できます。
  • オフライン展開を使用する。 この方法では、最小限の Web サーバーの構成で済みますが、サーバー管理者は Web パッケージをサーバーに手動でコピーし、IIS マネージャーを使用してインポートする必要があります。

これらのアプローチの主な機能、利点、および欠点の詳細については、「Web 配置に対する適切なアプローチの選択」を参照してください。

はい、 (ネットワーク インフラストラクチャまたはセキュリティの制限によってリモート配置が妨げる場合)。 これは、インターネットに接続する運用環境で、Web サーバーが物理的に、あるいはファイアウォールやサブネットによって、他のサーバー インフラから隔離されている場合に、最も起こりやすいケースです。

明らかに、Web アプリケーションが定期的に更新される場合、このアプローチは望ましくありません。 インフラストラクチャで許可されている場合は、Web 配置ハンドラーまたは Web 配置リモート エージェント サービスを使用して、リモート展開を有効にすることを検討できます。

タスクの概要

Web パッケージのオフライン インポートと配置をサポートするように 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 アドレスを構成する」を参照してください。

製品とコンポーネントのインストール

このセクションでは、必要な製品とコンポーネントを Web サーバーにインストールする方法について説明します。 開始する前に、Windows Update を実行して、サーバーが完全に最新であることを確認することをお勧めします。

この場合は、次のものをインストールする必要があります:

  • IIS 7 の推奨される構成。 これにより、Web サーバーで Web サーバー (IIS) の役割が有効になり、ASP.NET アプリケーションをホストするために必要な IIS モジュールとコンポーネントのセットがインストールされます。
  • .NET Framework 4.0。 これは、このバージョンの .NET Framework 上にビルドされたアプリケーションを実行するために必要です。
  • Web 配置ツール 2.1 以降。 これにより、Web 配置 (およびその基になる実行可能ファイル MSDeploy.exe) がサーバーにインストールされます。 Web 配置は IIS と統合され、Web パッケージのインポートとエクスポートができます。
  • ASP.NET MVC 3。 これにより、MVC 3 アプリケーションを実行するために必要なアセンブリがインストールされます。

Note

このチュートリアルでは、Web Platform Installer を使用してさまざまなコンポーネントをインストールおよび構成する方法について説明します。 Web Platform Installer を使用する必要はありませんが、依存関係を自動的に検出し、常に最新の製品バージョンを取得できるようにすることで、インストール プロセスが簡略化されます。 詳細については、「Microsoft Web Platform Installer 3.0」を参照してください。

必要な製品とコンポーネントをインストールするには

  1. Web Platform Installer をダウンロードしてインストールします。

  2. インストールが完了すると、Web Platform Installer が自動的に起動します。

    Note

    [スタート] メニューからいつでも Web Platform Installer を起動できるようになりました。 これを行うには、[スタート] メニューの [すべてのプログラム] をクリックし、[Microsoft Web Platform Installer] をクリックします。

  3. [Web Platform Installer 3.0] ウィンドウの上部にある [製品] を選択します。

  4. ウィンドウの左側にあるナビゲーション ウィンドウで、[フレームワーク] をクリックします。

  5. Microsoft .NET Framework 4 行で、.NET Framework がまだインストールされていない場合は、[追加] をクリックします。

    Note

    Windows Update を使用して .NET Framework 4.0 を既にインストールしている可能性もあります。 製品またはコンポーネントが既にインストールされている場合、Web Platform Installerは、[追加] ボタンを [インストール済み] というテキストに置き換えることで、これを示します。

    If a product or component is already installed, the Web Platform Installer will indicate this by replacing the Add button with the text Installed.

  6. ASP.NET MVC 3 (Visual Studio 2010) 行で、[追加] をクリックします。

  7. ナビゲーション ウィンドウで、[サーバー] をクリックします。

  8. [IIS 7 の推奨構成] 行で、[追加] を選択します。

  9. [Web 配置ツール 2.1] 行で、[追加] をクリックします。

  10. [インストール] をクリックします。 Web Platform Installer には、インストールされる製品の一覧と関連する依存関係が表示され、ライセンス条項に同意するように求められます。

    Click Install. The Web Platform Installer will show you a list of products together with any associated dependencies to be installed and will prompt you to accept the license terms.

  11. ライセンス条項を確認し、ご契約条件に同意する場合は、[同意する] を選択します。

  12. インストールが完了したら、[完了] を選択し、[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 に登録するには

  1. [スタート]をクリックし、[コマンド プロンプト] と入力します。

  2. 検索結果で [コマンド プロンプト] を右クリックし、[管理者として実行] をクリックします。

  3. コマンド プロンプト ウィンドウで、%WINDIR%\Microsoft.NET\Framework\v4.0.30319 ディレクトリに移動します。

  4. 次のコマンドを入力して、Enter キーを押します:

    aspnet_regiis -iru
    
  5. 任意の時点で 64 ビット Web アプリケーションをホストする予定の場合は、64 ビット バージョンの ASP.NET も IIS に登録する必要があります。 これを行うには、コマンド プロンプト ウィンドウで、%WINDIR%\Microsoft.NET\Framework64\v4.0.30319ディレクトリに移動します。

  6. 次のコマンドを入力して、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 サイトを作成して構成するには

  1. ローカル ファイル システムで、コンテンツを格納するフォルダー (C:\DemoSite など) を作成します。

  2. [スタート] メニューをクリックして、[管理ツール] をポイントして、[インターネット インフォメーション サービス (IIS) マネージャー] をクリックします。

  3. IIS マネージャーの [接続] ウィンドウで、サーバー ノード (PROWEB1 など) を展開します。

    In IIS Manager, in the Connections pane, expand the server node (for example, PROWEB1)

  4. [サイト] ノードを右クリックし、[Web サイト の追加] をクリックします。

  5. [サイト名]ボックスに、IIS Web サイトの名前 (DemoSite など) を入力します。

  6. [物理パス] ボックスに、ローカル フォルダー (C:\DemoSite など) へのパスを入力 (または参照) します。

  7. [ポート] ボックスに、Web サイトをホストするポート番号を入力します (例: 85)。

    Note

    標準ポート番号は、HTTP の場合は 80、HTTPS の場合は 443 です。 ただし、ポート 80 でこの Web サイトをホストする場合は、サイトにアクセスする前に既定の Web サイトを停止する必要があります。

  8. Web サイトのドメイン ネーム システム (DNS) レコードを構成する場合を除き、[ホスト名] ボックスは空白のままにし、[OK] をクリックします。

    Leave the Host name box blank, unless you want to configure a Domain Name System (DNS) record for the website, and then click OK.

    Note

    運用環境では、ポート 80 で Web サイトをホストし、一致する DNS レコードと共にホスト ヘッダーを構成します。 IIS 7 でのホスト ヘッダーの構成の詳細については、「Web サイトのホスト ヘッダーの構成 (IIS 7)」を参照してください。 Windows Server 2008 R2 での DNS サーバーの役割の詳細については、「DNS サーバーの概要」を参照してください。

  9. [ アクション ] ウィンドウの [ サイトの編集] の下にある [ バインド] をクリックします。

  10. [サイト バインド] ダイアログ ボックスの [追加]をクリックします。

    In the Site Bindings dialog box, click Add.

  11. [サイト バインドの追加] ダイアログ ボックスで、既存のサイト構成に合わせて IP アドレスポートを設定します。

  12. [ホスト名] ボックスに、Web サーバーの名前 (PROWEB1 など) を入力し、[OK] をクリックします。

    In the Host name box, type the name of your web server (for example, PROWEB1), and then click OK.

    Note

    最初のサイト バインドを使用すると、IP アドレスとポート、 または http://localhost:85 を使用してサイトにローカルでアクセスできます。 2 番目のサイト バインドでは、http://proweb1:85). などのコンピューター名を使用してドメイン上の他のコンピューターからサイトにアクセスできます

  13. [サイト バインド] ダイアログ ボックスの [閉じる]をクリックします。

  14. [接続] ウィンドウで [アプリケーション プール] をクリックします。

  15. [アプリケーション プール] ウィンドウで、アプリケーション プールの名前を右クリックし、[基本設定] をクリックします。 既定では、アプリケーション プールの名前は Web サイトの名前 (DemoSite など) と一致します。

  16. .NET Framework のバージョンの一覧で 、.NET Framework v4.0.30319 を選択し、[OK] をクリックします。

    In the .NET Framework version list, select .NET Framework v4.0.30319, and then click 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 サイトのフォルダーアクセス許可を構成するには

  1. Windows Explorer で、ローカル フォルダーの場所を参照します。

  2. フォルダーを右クリックし、[プロパティ] をクリックします。

  3. [Security] タブで、[Edit][Add] の順にクリックします。

  4. [場所] をクリックします。 [場所] ダイアログ ボックスで、ローカル サーバーを選択し、[OK] をクリックします。

    Click Locations. In the Locations dialog box, select the local server, and then click OK.

  5. [ユーザーまたはグループの選択] ダイアログ ボックスで、[IIS_IUSRS] と入力し、[名前の確認] をクリックして、[OK] をクリックします。

  6. [(フォルダー名) のアクセス許可] ダイアログ ボックスで、新しいグループに既定で [読み取りおよび実行][フォルダーの内容の一覧表示]、 および [読み取りアクセス許可] が割り当てられていることに注意してください。 これは変更せずに、[OK] をクリックします。

  7. [OK] をクリックして、[(フォルダー名) のプロパティ] ダイアログ ボックスを閉じます。

リモート エージェント サービスを無効にする

Web 配置をインストールすると、Web 配置エージェント サービスが自動的にインストールされ、開始されます。 このサービスを使用すると、リモートの場所から Web パッケージを配置して発行できます。 このシナリオではリモート配置機能を使用しないため、サービスを停止して無効にする必要があります。

Note

Web パッケージを手動でインポートして配置するために、リモート エージェント サービスを停止する必要はありません。 ただし、サービスを使用する予定がない場合は、サービスを停止して無効にすることをお勧めします。

さまざまなコマンド ライン ユーティリティまたは Windows PowerShell コマンドレットを使用して、複数の方法でサービスを停止および無効化できます。 この手順では、単純な UI ベースのアプローチについて説明します。

リモート エージェント サービスを停止して無効にするには

  1. [スタート] メニューで、 [管理ツール]をポイントして、 [サービス]をクリックします。

  2. サービス コンソールで、[Web 配置エージェント サービス] 行を見つけます。

    In the Services console, locate the Web Deployment Agent Service row.

  3. [Web 配置エージェント サービス] を右クリックし、[プロパティ] をクリックします。

  4. [Web 配置エージェント サービスのプロパティ] ダイアログ ボックスで、[停止] をクリックします。

  5. [スタートアップの種類] ボックスの 一覧で [無効] を選択し、[OK] をクリックします。

    In the Startup type list, select Disabled, and then click OK.

まとめ

この時点で、Web サーバーはオフラインの Web パッケージの 配置の準備ができています。 IIS Web サイトに Web パッケージをインポートする前に、次の主要なポイントを確認してください。

  • ASP.NET 4.0 を IIS に登録しましたか。
  • アプリケーション プール ID は、Web サイトのソース フォルダーへの読み取りアクセス権を持っていますか?
  • Web 配置エージェント サービスを停止しましたか。