IIS に ASP.NET Core アプリを発行する

このチュートリアルでは、IIS サーバーで ASP.NET Core アプリをホストする方法を示します。

このチュートリアルでは、次の件について取り上げます。

  • .NET Core ホスティング バンドルを Windows Server にインストールします。
  • IIS サイトを IIS マネージャーで作成します。
  • ASP.NET Core アプリを展開します。

必須コンポーネント

  • 開発用のコンピューターにインストールされている .NET Core SDK
  • Web Server (IIS) サーバー ロールで構成された Windows Server。 IIS を使用して Web サイトをホストするようにサーバーが構成されていない場合は、「IIS を使用した Windows での ASP.NET Core のホスト」の "IIS 構成" に関するセクションのガイダンスに従ってから、このチュートリアルに戻ってください。

警告

IIS 構成と Web サイトのセキュリティには、このチュートリアルでは説明されていない概念が含まれています。 IIS で本稼働アプリをホストする前に、Microsoft IIS ドキュメントIIS でホストする方法に関する ASP.NET Core 記事を参照してください。

このチュートリアルで取り上げられていない IIS ホスティングの重要なシナリオ:

.NET Core ホスティング バンドルのインストール

.NET Core ホスティング バンドルを IIS サーバーにインストールします。 このバンドルをインストールすることで、.NET Core ランタイム、.NET Core ライブラリ、ASP.NET Core モジュールがインストールされます。 このモジュールでは、ASP.NET Core アプリが IIS の背後で実行できるようになります。

次のリンクを使用してインストーラーをダウンロードします。

現在の .NET Core ホスティング バンドルのインストーラー (直接ダウンロード)

  1. IIS サーバーでインストーラーを実行します。

  2. サーバーを再起動するか、コマンド シェルで net stop was /y に続けて net start w3svc を実行します。

IIS サイトを作成する

  1. IIS サーバーで、アプリの公開フォルダーとファイルを格納するフォルダーを作成します。 以下の手順では、フォルダーのパスはアプリへの物理パスとして IIS に提供されます。 アプリの配置フォルダーとファイル レイアウトの詳細については、「ASP.NET Core のディレクトリ構造」を参照してください。

  2. IIS マネージャーの [接続] パネルで、サーバーのノードを開きます。 [サイト] フォルダーを右クリックします。 コンテキスト メニューで [Web サイトの追加] を選択します。

  3. [サイト名] を指定し、 [物理パス] には作成したアプリの配置フォルダーを設定します。 [バインド] の構成を指定して [OK] を選択し、Web サイトを作成します。

    警告

    最上位のワイルドカードのバインド ( http://*:80/http://+:80 ) は使用しては いけません 。 最上位のワイルドカードのバインドは、セキュリティの脆弱性に対してアプリを切り開くことができます。 これは、強力と脆弱の両方のワイルドカードに適用されます。 ワイルドカードではなく、明示的なホスト名を使用します。 全体の親ドメインを制御する場合、サブドメイン ワイルドカード バインド (たとえば、*.mysub.com) にこのセキュリティ リスクはありません (脆弱である *.com とは対照的)。 詳細については、RFC 9110: HTTP セマンティクス (セクション 7.2. 「Host and :authority (ホストと :authority)」) に関するページを参照してください。

  4. プロセス モデル ID に適切なアクセス許可があることを確認します。

    アプリ プールの既定の ID ([プロセス モデル]>Identity[]) を ApplicationPoolIdentity から別の ID に変更した場合は、アプリのフォルダー、データベース、その他の必要なリソースにアクセスするために要求されるアクセス許可が新しい ID に設定されていることを確認します。 たとえば、アプリケーション プールには、アプリがファイルの読み取りおよび書き込みを行うフォルダーへの読み取りおよび書き込みアクセスが必要です。

ASP.NET Core Razor Pages アプリを作成する

ASP.NET Core の概要チュートリアルに従って、Razor Pages アプリを作成します。

アプリを発行および配置する

"アプリを発行する" とは、サーバーでホストできるコンパイル済みのアプリを生成するということです。 "アプリを展開する" とは、発行済みのアプリをホスティング システムに移動するということです。 発行手順は .NET Core SDK で処理されます。一方で、展開手順はさまざまな手法で処理できます。 このチュートリアルでは、"フォルダー" 展開手法を採用しています。

  • アプリはフォルダーに発行されます。
  • フォルダーの内容が IIS サイトのフォルダーに移動されます (IIS マネージャーのサイトの物理パス)。
  1. [ソリューション エクスプローラー] でプロジェクトを右クリックし、 [発行] を選択します。
  2. [発行先を選択] ダイアログで、 [フォルダー] 発行オプションを選択します。
  3. フォルダーまたはファイル共有パスを選択します。
    • ネットワーク共有として開発用のコンピューターで利用できる IIS サイトのフォルダーを作成した場合、共有へのパスを指定します。 現在のユーザーに、共有に発行するための書き込みアクセスを与える必要があります。
    • IIS サーバー上の IIS サイト フォルダーに直接展開できない場合、リムーバブル メディア上のフォルダーに発行し、IIS マネージャーでサイトの物理パスである、サーバー上の IIS サイト フォルダーに発行済みのアプリを物理的に移動します。 IIS マネージャーでサイトのbin/Release/{TARGET FRAMEWORK}/publishである、サーバー上の IIS サイト フォルダーに bin/Release/{TARGET FRAMEWORK}/publish フォルダーの内容を移動します。
  4. [発行] を選択します。

Web サイトを閲覧する

アプリには、最初の要求の受信後、ブラウザーでアクセスできます。 サイトの IIS マネージャーで設定したエンドポイント バインドでアプリへの要求を行います。

次の手順

このチュートリアルでは、次の作業を行う方法を学びました。

  • .NET Core ホスティング バンドルを Windows Server にインストールします。
  • IIS サイトを IIS マネージャーで作成します。
  • ASP.NET Core アプリを展開します。

IIS で ASP.NET Core アプリをホストする方法の詳細については、IIS の概要に関する記事を参照してください。

その他の技術情報

ASP.NET Core ドキュメント セットの記事

ASP.NET Core アプリの展開に関する記事

IIS HTTPS 構成に関する記事

IIS と Windows Server に関する記事

IIS 管理者用の展開リソース