Web 配置発行の Web サーバーを構成する (Web 配置ハンドラー)

このトピックでは、IIS Web 配置ハンドラーを使用して Web 発行と展開をサポートするようにインターネット インフォメーション サービス (IIS) Web サーバーを構成する方法について説明します。

Web Deploy 2.0 以降を使用する場合、アプリケーションまたはサイトを Web サーバーに取得するために使用できる 3 つのメインアプローチがあります。 次のようにすることができます。

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

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

はい(管理者以外のユーザーが特定の IIS Web サイトにコンテンツを展開できるようにする場合)。 この方法は、多くの場合、次の種類のシナリオで望ましい場合があります。

  • リモート展開をトリガーするユーザーまたはサービス アカウントがサーバー管理者の資格情報にアクセスできる可能性が低いステージング環境または運用環境。
  • ホストされている環境。リモート ユーザーが Web サーバーを完全に制御 (または他のユーザーの Web サイトにアクセス) することなく、Web サイトを更新できるようにする必要があります。

開発またはテストのシナリオや小規模な組織では、サーバー管理者の資格情報を使用してコンテンツを展開することは、多くの場合、あまり問題ではありません。 これらのシナリオでは、Web 配置リモート エージェント サービス を使用してデプロイをサポートするように Web サーバーを構成すると、より簡単なアプローチが提供されます。

タスクの概要

Web 配置ハンドラー アプローチを使用してリモート コンピューターから Web パッケージを受け入れて展開するように Web サーバーを構成するには、次の操作を行う必要があります。

  • デプロイの実行に使用する資格情報を持つドメイン ユーザー アカウント ("管理者以外のユーザー") を作成するか、選択します。
  • Web 管理サービスと基本認証モジュールを含む IIS 7.5 をインストールします。
  • Web Deploy 2.1 以降をインストールします。
  • リモート接続を許可するように Web 管理サービスを構成し、サービスを開始します。
  • 展開されたコンテンツをホストする IIS Web サイトを作成します。
  • IIS マネージャーで Web サイトに対する管理者以外のユーザーのアクセス許可を付与します。
  • Web 管理サービスの委任ルールで、管理者以外のユーザー アカウントを使用して Web サイト のコンテンツを追加および変更することをサービスに許可していることを確認します。
  • ポート 8172 で受信接続を許可するようにファイアウォールを構成します。

ContactManager サンプル ソリューションを具体的にホストするには、次のことも必要です。

  • .NET Framework 4.0 をインストールします。
  • MVC 3 ASP.NET インストールします。

このトピックでは、これらの各手順を実行する方法について説明します。 このトピックのタスクとチュートリアルでは、Windows Server 2016を実行しているクリーン サーバー ビルドから始めていることを前提としています。 続行する前に、次のことを確認します。

  • Windows Server 2016
  • サーバーはドメインに参加しています。
  • サーバーには静的 IP アドレスがあります。

注意

コンピューターをドメインに参加させる方法の詳細については、「ドメインへの コンピューターの参加」および「ログオン」を参照してください。 静的 IP アドレスの構成の詳細については、「静的 IP アドレスの構成」を参照してください。

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

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

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

  • IIS 7 の推奨構成。 これにより、 Web サーバー上の Web サーバー (IIS) ロールが有効になり、ASP.NET アプリケーションをホストするために必要な IIS モジュールとコンポーネントのセットがインストールされます。
  • IIS: 管理サービス。 これにより、IIS に Web 管理サービス (WMSvc) がインストールされます。 このサービスにより、IIS Web サイトのリモート管理が可能になり、Web 配置ハンドラー エンドポイントがクライアントに公開されます。
  • IIS: 基本認証。 これにより、IIS 基本認証モジュールがインストールされます。 これにより、Web 管理サービス (WMSvc) は、指定した資格情報を認証できます。
  • Web 配置ツール 2.1 以降。 これにより、Web 配置 (およびその基になる実行可能ファイル MSDeploy.exe) がサーバーにインストールされます。 このプロセスの一環として、Web 配置ハンドラーがインストールされ、Web 管理サービスと統合されます。
  • .NET Framework 4.0。 これは、このバージョンの.NET Frameworkに基づいて構築されたアプリケーションを実行するために必要です。
  • MVC 3 を ASP.NET します。 これにより、MVC 3 アプリケーションを実行するために必要なアセンブリがインストールされます。

Note

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

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

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

  2. インストールが完了すると、Web プラットフォーム インストーラーが自動的に起動します。

    注意

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

  3. [Web Platform Installer] ウィンドウの上部で、[製品] をクリックします。

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

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

    注意

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

    製品またはコンポーネントが既にインストールされている場合、Web プラットフォーム インストーラーは、[追加] ボタンを [インストール済み] というテキストに置き換えることで、これを示します。

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

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

  8. [ IIS 7 Recommended Configuration]\(IIS 7 推奨構成\) 行で、[ 追加] をクリックします。

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

  10. [ IIS: 基本認証 ] 行で、[ 追加] をクリックします。

  11. [ IIS: 管理サービス ] 行で、[ 追加] をクリックします。

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

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

  13. ライセンス条項を確認し、条項に同意する場合 は、[同意する] をクリックします。

  14. インストールが完了したら、[ 完了] をクリックし、[ Web プラットフォーム インストーラー ] ウィンドウを閉じます。

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使用して、インストールした新しい製品とコンポーネントの利用可能な更新プログラムをダウンロードしてインストールすることをお勧めします。

Web 管理サービスを構成する

必要なものがすべてインストールされたので、次の手順は IIS で Web 管理サービスを構成することです。 大まかに言うと、次のタスクを完了する必要があります。

  • サーバー レベルで基本認証を有効にします。
  • リモート接続を受け入れるように Web 管理サービスを構成します。
  • Web 管理サービスを開始します。
  • 必要な Web 管理サービスの委任規則が設定されていることを確認します。

Web 管理サービスを構成するには

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

  2. IIS マネージャーの [ 接続 ] ウィンドウで、サーバー ノード ( たとえば、STAGEWEB1) をクリックします。

    IIS マネージャーの [接続] ウィンドウで、サーバー ノード (たとえば、STAGEWEB1) をクリックします。

  3. 中央のウィンドウの [ IIS] で、[ 認証] をダブルクリックします。

    中央のウィンドウの [IIS] の下にある [認証] をダブルクリックします。

  4. [ 基本認証] を右クリックし、[ 有効にする] をクリックします。

    [基本認証] を右クリックし、[有効にする] をクリックします。

  5. [ 接続 ] ウィンドウで、サーバー ノードをもう一度クリックして、最上位の設定に戻ります。

  6. 中央のウィンドウの [ 管理] で、[ 管理サービス] をダブルクリックします。

    中央のウィンドウの [管理] で、[管理サービス] をダブルクリックします。

  7. 中央のウィンドウで、[ リモート接続を有効にする] を選択します。

    注意

    Web 管理サービスが既に実行されている場合は、最初に停止する必要があります。

  8. [ 操作 ] ウィンドウで、[ 開始 ] をクリックして Web 管理サービスを開始します。

    [操作] ウィンドウで、[開始] をクリックして Web 管理サービスを開始します。

  9. 設定を保存するように求められたら、[ はい] をクリックします。

    注意

    サービスを自動的に開始するように構成することもできます。 これを行うには、サービス コンソールを開き、[ Web 管理サービス] を右クリックし、[ プロパティ] をクリックします。 [ スタートアップの種類 ] ドロップダウン リストで、[ 自動] を選択し、[OK] をクリック します

  10. [ 接続 ] ウィンドウで、サーバー ノードをもう一度クリックして、最上位の設定に戻ります。

  11. 中央のウィンドウの [ 管理] で、[ 管理サービスの委任] をダブルクリックします。

    中央のウィンドウの [管理] で、[管理サービスの委任] をダブルクリックします。

  12. 中央のペインに一連のルールが含まれていることを確認します。

    中央のペインに一連のルールが含まれていることを確認します。

    これらの規則により、承認された Web 管理サービス ユーザーはさまざまな Web 配置プロバイダーを使用できます。 たとえば、Web 配置ハンドラーを使用して Web アプリケーションとコンテンツを IIS に展開するには、認証されたすべての Web 管理サービス ユーザーが contentPath プロバイダーと iisApp プロバイダー (スクリーンショットに表示される最後のルール) を使用できるようにする委任規則が必要です。

    このトピックで説明する順序で製品とコンポーネントをインストールした場合、Web 配置の最新バージョンでは、必要なすべての委任規則が Web 管理サービスに自動的に追加されます。 [管理サービス委任] ページにルールが表示されない場合は、自分で作成する必要があります。 これを行う手順については、「 Web 配置ハンドラーの構成」を参照してください。

  13. [ 接続 ] ウィンドウで、サーバー ノードをもう一度クリックして、最上位の設定に戻ります。

IIS Web サイトを作成して構成する

Web コンテンツをサーバーに展開する前に、コンテンツをホストするように IIS Web サイトを作成して構成する必要があります。 Web 配置では、Web パッケージを既存の IIS Web サイトにのみ展開できます。Web サイトを作成することはできません。 また、管理者以外のアカウントがコンテンツをリモートで展開できるように、少し追加の構成を行う必要もあります。 大まかに言うと、次のタスクを完了する必要があります。

  • ファイル システム上に、コンテンツをホストするフォルダーを作成します。
  • コンテンツを提供する IIS Web サイトを作成し、ローカル フォルダーに関連付けます。
  • ローカル フォルダーのアプリケーション プール ID に読み取りアクセス許可を付与します。
  • Web アプリケーションを展開するドメイン アカウントに必要な IIS アクセス許可を付与します。

IIS の既定の Web サイトにコンテンツを展開することを止めることはありませんが、この方法はテストシナリオやデモシナリオ以外には推奨されません。 運用環境をシミュレートするには、アプリケーションの要件に固有の設定を含む新しい IIS Web サイトを作成する必要があります。

IIS Web サイトを作成するには

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

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

  3. IIS マネージャーの [ 接続 ] ウィンドウで、サーバー ノード ( たとえば、STAGEWEB1) を展開します。

    IIS マネージャーの [接続] ウィンドウで、サーバー ノード (たとえば、STAGEWEB1) を展開します。

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

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

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

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

    注意

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

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

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

    Note

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

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

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

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

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

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

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

    Note

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

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

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

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

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

    .NET CLR のバージョンの一覧で、[.NET CLR 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 グループにアクセス許可を割り当てることです。この方法では、ファイル システムのアクセス許可を再構成せずにアプリケーション プールを変更できるためです。 次の手順では、このグループベースのアプローチを使用します。

注意

IIS 7.5 のアプリケーション プール ID の詳細については、「 アプリケーション プール ID」を参照してください。

IIS Web サイトのフォルダーのアクセス許可を構成するには

  1. Windows エクスプローラーで、ローカル フォルダーの場所を参照します。

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

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

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

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

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

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

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

最後のタスクとして、コンテンツの展開に使用する資格情報を持つ管理者以外のユーザーに適切なアクセス許可を付与する必要があります。 このユーザーには、Web サイトにコンテンツをリモートで展開するためのアクセス許可が必要です。

管理者以外のドメイン ユーザーの IIS Web サイトのアクセス許可を構成するには

  1. IIS マネージャーの [ 接続 ] ウィンドウで、Web サイト ノード ( DemoSite など) を右クリックし、[ 配置] をポイントして、[ Web 配置発行の構成] をクリックします。

    IIS マネージャーの [接続] ウィンドウで、Web サイト ノード (DemoSite など) を右クリックし、[配置] をポイントして、[Web 配置発行の構成] をクリックします。

  2. [ Web 配置発行の構成 ] ダイアログ ボックスの [ 発行アクセス許可を付与するユーザーの選択 ] の一覧の右側にある省略記号ボタンをクリックします。

    [Web 配置発行の構成] ダイアログ ボックスの [発行アクセス許可を付与するユーザーの選択] の一覧の右側にある省略記号ボタンをクリックします。

  3. [ ユーザーの許可 ] ダイアログ ボックスで、コンテンツの展開に使用するアカウントのドメインとユーザー名を入力し、[OK] をクリック します

    [ユーザーの許可] ダイアログ ボックスで、コンテンツの展開に使用するアカウントのドメインとユーザー名を入力し、[OK] をクリックします。

  4. [ Web 配置発行の構成 ] ダイアログ ボックスで、[ セットアップ] をクリックします。

    [Web 配置発行の構成] ダイアログ ボックスで、[セットアップ] をクリックします。

    注意

    この操作では、1 つの手順で 2 つの主要な機能が実行されます。 最初に、前のセクションで調べた委任規則に従って、Web 管理サービスを介して Web サイトをリモートで変更するアクセス許可をユーザーに付与します。 次に、ユーザーに Web サイトのソース フォルダーのフル コントロールを許可します。これにより、ユーザーは Web サイトのコンテンツに対するアクセス許可を追加、変更、および設定できます。

  5. [ Web 配置発行の構成 ] ダイアログ ボックスで、[ 閉じる] をクリックします。

ファイアウォールの例外を構成する

既定では、IIS Web 管理サービスは TCP ポート 8172 でリッスンします。 Web サーバーで Windows ファイアウォールが有効になっている場合は、ポート 8172 で TCP トラフィックを許可する新しい受信規則を作成する必要があります (Windows ファイアウォールでは、すべての送信トラフィックが既定で許可されます)。 サードパーティのファイアウォールを使用する場合は、トラフィックを許可する規則を作成する必要があります。

Direction ポートから ポートへ ポートの種類
着信 Any 8172 TCP
送信 8172 Any TCP

Windows ファイアウォールでの規則の構成の詳細については、「 ファイアウォール規則の構成」を参照してください。 サード パーティ製のファイアウォールについては、製品のドキュメントを参照してください。

まとめ

これで、Web サーバーは、Web 管理サービスを介して Web 配置ハンドラーへのリモート展開を受け入れる準備が整いました。 Web アプリケーションをサーバーに展開する前に、次の重要なポイントをチェックできます。

  • IIS のサーバー レベルで基本認証を有効にしていますか?
  • Web 管理サービスへのリモート接続を有効にしていますか?
  • Web 管理サービスを開始しましたか?
  • 管理サービスの委任規則はありますか?
  • アプリケーション プール ID は、Web サイトのソース フォルダーへの読み取りアクセス権を持っていますか?
  • 管理者以外のユーザー アカウントには、IIS でのサイト レベルのアクセス許可がありますか?
  • ファイアウォールで TCP ポート 8172 上のサーバーへの受信接続が許可されていますか?

もっと読む

Web パッケージを Web 配置ハンドラーに配置するようにカスタム Microsoft Build Engine (MSBuild) プロジェクト ファイルを構成する方法のガイダンスについては、「ターゲット環境の配置プロパティの構成」を参照してください。