Visual Studio for ASP.NET Core の開発時 IIS サポート

Sourabh Shirhatti による投稿

この記事では、Windows Server 上の IIS で実行されている ASP.NET Core アプリをデバッグするための、Visual Studio のサポートについて説明します。 このトピックでは、このシナリオを有効にしてプロジェクトを設定する手順を示します。

必須コンポーネント

  • Visual Studio (Windows 版)
  • ASP.NET および Web の開発ワークロード
  • .NET Core クロスプラットフォームの開発ワークロード
  • X.509 セキュリティ証明書 (HTTPS のサポート用)

IIS を有効にする

  1. Windows で、[コントロール パネル] >[プログラム]>[プログラムと機能]>[Windows の機能の有効化または無効化] (画面の左側) に移動します。
  2. [インターネット インフォメーション サービス]チェック ボックスをオンにします。 [OK] を選択します。

IIS のインストールには、システムの再起動が必要になる場合があります。

IIS の構成

IIS には、次のように構成された Web サイトが含まれている必要があります。

  • ホスト名:通常、localhostホスト名では既定の Web サイトが使用されます。 ただし、一意のホスト名を持つ任意の有効な IIS Web サイトが動作します。
  • サイト バインド
    • HTTPS を必要とするアプリの場合は、証明書でポート 443 へのバインドを作成します。 通常は、IIS Express 開発証明書が使用されますが、任意の有効な証明書を使用できます。
    • HTTP を使用するアプリの場合は、ポート 80 へのバインドが存在することを確認するか、新しいサイト用にポート 80 へのバインドを作成します。
    • HTTP または HTTPS のいずれかに対する 1 つのバインドを使用します。 HTTP と HTTPS の両方のポートに同時にバインドすることはサポートされていません。

Visual Studio の開発時 IIS サポートを有効にする

  1. Visual Studio インストーラーを起動します。

  2. IIS 開発時のサポート用に使用する Visual Studio のインストールの [変更] を選択します。

  3. ASP.NET と Web 開発ワークロードで、開発時 IIS サポート コンポーネントを探してインストールします。

    ワークロードの右側にある [インストールの詳細] パネルの開発時 IIS サポートの下の [省略可能] セクションの一覧に、コンポーネントが表示されます。 このコンポーネントにより、IIS を使用した ASP.NET Core アプリの実行に必要なネイティブの IIS モジュールである ASP.NET Core モジュールがインストールされます。

プロジェクトを構成する

HTTPS リダイレクト

HTTPS が必要な新しいプロジェクトの場合は、 [新しい ASP.NET Core Web アプリケーションを作成する] ウィンドウで、 [HTTPS 用の構成] のチェックボックスをオンにします。 チェックボックスをオンにすると、アプリの作成時に HTTPS リダイレクトと HSTS ミドルウェアがアプリに追加されます。

HTTPS が必要な既存のプロジェクトでは、Startup.Configure 内で HTTPS リダイレクトと HSTS ミドルウェアを使用します。 詳細については、「ASP.NET Core で HTTPS を適用する」を参照してください。

HTTP を使用するプロジェクトの場合は、HTTPS リダイレクトと HSTS ミドルウェアはアプリに追加されません。 アプリの構成は必要ありません。

IIS 起動プロファイル

新しい起動プロファイルを作成して、開発時 IIS サポートを追加します。

  1. ソリューション エクスプローラーで、プロジェクトを右クリックします。 [プロパティ] を選びます。 [デバッグ] タブを開きます。

  2. [プロファイル] で、 [新規] ボタンを選択します。 ポップアップ ウィンドウで、プロファイルに "IIS" という名前を付けます。 [OK] をクリックして、プロファイルを作成します。

  3. [起動] の設定で、一覧から [IIS] を選択します。

  4. [ブラウザーの起動] チェックボックスをオンにして、エンドポイント URL を指定します。

    アプリで HTTPS が必要な場合は、HTTPS エンドポイント (https://) を使用します。 HTTP の場合は、HTTP エンドポイント (http://) を使用します。

    前に指定した IIS 構成で使用されているものと同じホスト名とポートを指定します。通常は localhost です。

    URL の最後でアプリの名前を指定します。

    たとえば、https://localhost/WebApplication1 (HTTPS) や http://localhost/WebApplication1(HTTP) は有効なエンドポイント URL です。

  5. [環境変数] セクションで、 [追加] ボタンを選択します。 ASPNETCORE_ENVIRONMENT[名前] および Development[値] で環境変数を指定します。

  6. [Web サーバーの設定] 領域で、 [アプリの URL][ブラウザーの起動] エンドポイント URL に使用したものと同じ値に設定します。

  7. Visual Studio 2019 以降の [ホスティング モデル] の設定では、 [既定] を選択して、プロジェクトによって使用されるホスティング モデルを使用します。 プロジェクトのプロジェクト ファイルで <AspNetCoreHostingModel> プロパティが設定されている場合は、プロパティ (InProcess または OutOfProcess) の値が使用されます。 プロパティが存在しない場合は、アプリの既定のホスティング モデルが使用され、それはインプロセスです。 アプリの通常のホスティング モデルとは異なるホスティング モデルを明示的に設定する必要があるアプリの場合は、必要に応じて、 [ホスティング モデル]In Process または Out Of Process に設定します。

  8. プロファイルを保存します。

Visual Studio を使用していない場合は、起動プロファイルを Properties フォルダーの launchSettings.json ファイルに手動で追加します。 次の例では、HTTPS プロトコルを使用するようにプロファイルを構成しています。

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iis": {
      "applicationUrl": "https://localhost/WebApplication1",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS": {
      "commandName": "IIS",
      "launchBrowser": true,
      "launchUrl": "https://localhost/WebApplication1",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

applicationUrl エンドポイントと launchUrl エンドポイントが一致し、IIS バインド構成と同じプロトコル (HTTP または HTTPS) が使用されていることを確認してください。

プロジェクトを実行する

Visual Studio を管理者として実行します。

  • ビルド構成のドロップダウン リストが [デバッグ] に設定されていることを確認します。
  • [デバッグの開始] ボタン[IIS] プロファイルに設定し、ボタンを選択してアプリを起動します。

管理者として実行していない場合、Visual Studio によって再起動を求められる場合があります。 その場合は、Visual Studio を再起動します。

信頼されていない開発証明書を使用すると、信頼されていない証明書に対する例外を作成するように、ブラウザーによって求められる場合があります。

Note

マイ コードのみとコンパイラの最適化を使用してリリースのビルド構成をデバッグすると、エクスペリエンスの品質が低下します。 たとえば、ブレーク ポイントがヒットしません。

その他の技術情報

この記事では、Windows Server 上の IIS で実行されている ASP.NET Core アプリをデバッグするための、Visual Studio のサポートについて説明します。 このトピックでは、このシナリオを有効にしてプロジェクトを設定する手順を示します。

必須コンポーネント

  • Visual Studio (Windows 版)
  • ASP.NET および Web の開発ワークロード
  • .NET Core クロスプラットフォームの開発ワークロード
  • X.509 セキュリティ証明書 (HTTPS のサポート用)

IIS を有効にする

  1. Windows で、[コントロール パネル] >[プログラム]>[プログラムと機能]>[Windows の機能の有効化または無効化] (画面の左側) に移動します。
  2. [インターネット インフォメーション サービス]チェック ボックスをオンにします。 [OK] を選択します。

IIS のインストールには、システムの再起動が必要になる場合があります。

IIS の構成

IIS には、次のように構成された Web サイトが含まれている必要があります。

  • ホスト名:通常、localhostホスト名では既定の Web サイトが使用されます。 ただし、一意のホスト名を持つ任意の有効な IIS Web サイトが動作します。
  • サイト バインド
    • HTTPS を必要とするアプリの場合は、証明書でポート 443 へのバインドを作成します。 通常は、IIS Express 開発証明書が使用されますが、任意の有効な証明書を使用できます。
    • HTTP を使用するアプリの場合は、ポート 80 へのバインドが存在することを確認するか、または新しいサイト用にポート 80 へのバインドを作成します。
    • HTTP または HTTPS のいずれかに対する 1 つのバインドを使用します。 HTTP と HTTPS の両方のポートに同時にバインドすることはサポートされていません。

Visual Studio の開発時 IIS サポートを有効にする

  1. Visual Studio インストーラーを起動します。

  2. IIS 開発時のサポート用に使用する Visual Studio のインストールの [変更] を選択します。

  3. ASP.NET と Web 開発ワークロードで、開発時 IIS サポート コンポーネントを探してインストールします。

    ワークロードの右側にある [インストールの詳細] パネルの開発時 IIS サポートの下の [省略可能] セクションの一覧に、コンポーネントが表示されます。 このコンポーネントにより、IIS を使用した ASP.NET Core アプリの実行に必要なネイティブの IIS モジュールである ASP.NET Core モジュールがインストールされます。

プロジェクトを構成する

HTTPS リダイレクト

HTTPS が必要な新しいプロジェクトの場合は、 [新しい ASP.NET Core Web アプリケーションを作成する] ウィンドウで、 [HTTPS 用の構成] のチェックボックスをオンにします。 チェックボックスをオンにすると、アプリの作成時に HTTPS リダイレクトと HSTS ミドルウェアがアプリに追加されます。

HTTPS が必要な既存のプロジェクトでは、Startup.Configure 内で HTTPS リダイレクトと HSTS ミドルウェアを使用します。 詳細については、「ASP.NET Core で HTTPS を適用する」を参照してください。

HTTP を使用するプロジェクトの場合は、HTTPS リダイレクトと HSTS ミドルウェアはアプリに追加されません。 アプリの構成は必要ありません。

IIS 起動プロファイル

新しい起動プロファイルを作成して、開発時 IIS サポートを追加します。

  1. ソリューション エクスプローラーで、プロジェクトを右クリックします。 [プロパティ] を選びます。 [デバッグ] タブを開きます。

  2. [プロファイル] で、 [新規] ボタンを選択します。 ポップアップ ウィンドウで、プロファイルに "IIS" という名前を付けます。 [OK] をクリックして、プロファイルを作成します。

  3. [起動] の設定で、一覧から [IIS] を選択します。

  4. [ブラウザーの起動] チェックボックスをオンにして、エンドポイント URL を指定します。

    アプリで HTTPS が必要な場合は、HTTPS エンドポイント (https://) を使用します。 HTTP の場合は、HTTP エンドポイント (http://) を使用します。

    前に指定した IIS 構成で使用されているものと同じホスト名とポートを指定します。通常は localhost です。

    URL の最後でアプリの名前を指定します。

    たとえば、https://localhost/WebApplication1 (HTTPS) や http://localhost/WebApplication1(HTTP) は有効なエンドポイント URL です。

  5. [環境変数] セクションで、 [追加] ボタンを選択します。 ASPNETCORE_ENVIRONMENT[名前] および Development[値] で環境変数を指定します。

  6. [Web サーバーの設定] 領域で、 [アプリの URL][ブラウザーの起動] エンドポイント URL に使用したものと同じ値に設定します。

  7. Visual Studio 2019 以降の [ホスティング モデル] の設定では、 [既定] を選択して、プロジェクトによって使用されるホスティング モデルを使用します。 プロジェクトのプロジェクト ファイルで <AspNetCoreHostingModel> プロパティが設定されている場合は、プロパティ (InProcess または OutOfProcess) の値が使用されます。 プロパティが存在しない場合は、アプリの既定のホスティング モデルが使用され、それはアウトプロセスです。 アプリの通常のホスティング モデルとは異なるホスティング モデルを明示的に設定する必要があるアプリの場合は、必要に応じて、 [ホスティング モデル]In Process または Out Of Process に設定します。

  8. プロファイルを保存します。

Visual Studio を使用していない場合は、起動プロファイルを Properties フォルダーの launchSettings.json ファイルに手動で追加します。 次の例では、HTTPS プロトコルを使用するようにプロファイルを構成しています。

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iis": {
      "applicationUrl": "https://localhost/WebApplication1",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS": {
      "commandName": "IIS",
      "launchBrowser": true,
      "launchUrl": "https://localhost/WebApplication1",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

applicationUrl エンドポイントと launchUrl エンドポイントが一致し、IIS バインド構成と同じプロトコル (HTTP または HTTPS) が使用されていることを確認してください。

プロジェクトを実行する

Visual Studio を管理者として実行します。

  • ビルド構成のドロップダウン リストが [デバッグ] に設定されていることを確認します。
  • [デバッグの開始] ボタン[IIS] プロファイルに設定し、ボタンを選択してアプリを起動します。

管理者として実行していない場合、Visual Studio によって再起動を求められる場合があります。 その場合は、Visual Studio を再起動します。

信頼されていない開発証明書を使用すると、信頼されていない証明書に対する例外を作成するように、ブラウザーによって求められる場合があります。

Note

マイ コードのみとコンパイラの最適化を使用してリリースのビルド構成をデバッグすると、エクスペリエンスの品質が低下します。 たとえば、ブレーク ポイントがヒットしません。

その他の技術情報