Visual Studio for ASP.NET Core の開発時 IIS サポートDevelopment-time IIS support in Visual Studio for ASP.NET Core

著者: Sourabh ShirhattiLuke LathamBy Sourabh Shirhatti and Luke Latham

この記事では、Windows Server 上の IIS で実行されている ASP.NET Core アプリをデバッグするための、Visual Studio のサポートについて説明します。This article describes Visual Studio support for debugging ASP.NET Core apps running with IIS on Windows Server. このトピックでは、このシナリオを有効にしてプロジェクトを設定する手順を示します。This topic walks through enabling this scenario and setting up a project.

必須コンポーネントPrerequisites

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

IIS を有効にするEnable IIS

  1. Windows で、[コントロール パネル] > [プログラム] > [プログラムと機能] > [Windows の機能の有効化または無効化] (画面の左側) に移動します。In Windows, navigate to Control Panel > Programs > Programs and Features > Turn Windows features on or off (left side of the screen).
  2. [インターネット インフォメーション サービス] チェック ボックスをオンにします。Select the Internet Information Services check box. [OK] を選択します。Select OK.

IIS のインストールには、システムの再起動が必要になる場合があります。The IIS installation may require a system restart.

IIS の構成Configure IIS

IIS には、次のように構成された Web サイトが含まれている必要があります。IIS must have a website configured with the following:

  • ホスト名 – 通常、localhostホスト名では既定の Web サイトが使用されます。Host name – Typically, the Default Web Site is used with a Host name of localhost. ただし、一意のホスト名を持つ任意の有効な IIS Web サイトが動作します。However, any valid IIS website with a unique host name works.
  • サイト バインドSite Binding
    • HTTPS を必要とするアプリの場合は、証明書でポート 443 へのバインドを作成します。For apps that require HTTPS, create a binding to port 443 with a certificate. 通常は、IIS Express 開発証明書が使用されますが、任意の有効な証明書を使用できます。Typically, the IIS Express Development Certificate is used, but any valid certificate works.
    • HTTP を使用するアプリの場合は、ポート 80 へのバインドが存在することを確認するか、または新しいサイト用にポート 80 へのバインドを作成します。For apps that use HTTP, confirm the existence of a binding to post 80 or create a binding to port 80 for a new site.
    • HTTP または HTTPS のいずれかに対する 1 つのバインドを使用します。Use a single binding for either HTTP or HTTPS. HTTP と HTTPS の両方のポートに同時にバインドすることはサポートされていません。Binding to both HTTP and HTTPS ports simultaneously isn't supported.

Visual Studio の開発時 IIS サポートを有効にするEnable development-time IIS support in Visual Studio

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

  2. IIS 開発時のサポート用に使用する Visual Studio のインストールの [変更] を選択します。Select Modify for the Visual Studio installation that you plan to use for IIS development-time support.

  3. ASP.NET と Web 開発ワークロードで、開発時 IIS サポート コンポーネントを探してインストールします。For the ASP.NET and web development workload, locate and install the Development time IIS support component.

    ワークロードの右側にある [インストールの詳細] パネルの開発時 IIS サポートの下の [省略可能] セクションの一覧に、コンポーネントが表示されます。The component is listed in the Optional section under Development time IIS support in the Installation details panel to the right of the workloads. このコンポーネントにより、IIS を使用した ASP.NET Core アプリの実行に必要なネイティブの IIS モジュールである ASP.NET Core モジュールがインストールされます。The component installs the ASP.NET Core Module, which is a native IIS module required to run ASP.NET Core apps with IIS.

プロジェクトを構成するConfigure the project

HTTPS リダイレクトHTTPS redirection

HTTPS が必要な新しいプロジェクトの場合は、[新しい ASP.NET Core Web アプリケーションを作成する] ウィンドウで、[HTTPS 用の構成] のチェック ボックスをオンにします。For a new project that requires HTTPS, select the check box to Configure for HTTPS in the Create a new ASP.NET Core Web Application window. チェック ボックスをオンにすると、アプリの作成時に HTTPS リダイレクトと HSTS ミドルウェアがアプリに追加されます。Selecting the check box adds HTTPS Redirection and HSTS Middleware to the app when it's created.

HTTPS が必要な既存のプロジェクトでは、Startup.Configure 内で HTTPS リダイレクトと HSTS ミドルウェアを使用します。For an existing project that requires HTTPS, use HTTPS Redirection and HSTS Middleware in Startup.Configure. 詳細については、「ASP.NET Core での HTTPS を適用します。」を参照してください。For more information, see ASP.NET Core での HTTPS を適用します。.

HTTP を使用するプロジェクトの場合は、HTTPS リダイレクトと HSTS ミドルウェアはアプリに追加されません。For a project that uses HTTP, HTTPS Redirection and HSTS Middleware aren't added to the app. アプリの構成は必要ありません。No app configuration is required.

IIS 起動プロファイルIIS launch profile

新しい起動プロファイルを作成して、開発時 IIS サポートを追加します。Create a new launch profile to add development-time IIS support:

  1. ソリューション エクスプローラーで、プロジェクトを右クリックします。Right-click the project in Solution Explorer. [プロパティ] を選びます。Select Properties. [デバッグ] タブを開きます。Open the Debug tab.

  2. [プロファイル] で、[新規] ボタンを選択します。For Profile, select the New button. ポップアップ ウィンドウで、プロファイルに "IIS" という名前を付けます。Name the profile "IIS" in the popup window. [OK] をクリックして、プロファイルを作成します。Select OK to create the profile.

  3. [起動] の設定で、一覧から [IIS] を選択します。For the Launch setting, select IIS from the list.

  4. [ブラウザーの起動] チェック ボックスをオンにして、エンドポイント URL を指定します。Select the check box for Launch browser and provide the endpoint URL.

    アプリで HTTPS が必要な場合は、HTTPS エンドポイント (https://) を使用します。When the app requires HTTPS, use an HTTPS endpoint (https://). HTTP の場合は、HTTP エンドポイント (http://) を使用します。For HTTP, use an HTTP (http://) endpoint.

    前に指定した IIS 構成で使用されているものと同じホスト名とポートを指定します。通常は localhost です。Provide the same host name and port as the IIS configuration specified earlier uses, typically localhost.

    URL の最後でアプリの名前を指定します。Provide the name of the app at the end of the URL.

    たとえば、https://localhost/WebApplication1 (HTTPS) や http://localhost/WebApplication1(HTTP) は有効なエンドポイント URL です。For example, https://localhost/WebApplication1 (HTTPS) or http://localhost/WebApplication1 (HTTP) are valid endpoint URLs.

  5. [環境変数] セクションで、[追加] ボタンを選択します。In the Environment variables section, select the Add button. ASPNETCORE_ENVIRONMENT[名前] および Development[値] で環境変数を指定します。Provide an environment variable with a Name of ASPNETCORE_ENVIRONMENT and a Value of Development.

  6. [Web サーバーの設定] 領域で、[アプリの URL][ブラウザーの起動] エンドポイント URL に使用したものと同じ値に設定します。In the Web Server Settings area, set the App URL to the same value used for the Launch browser endpoint URL.

  7. Visual Studio 2019 以降の [ホスティング モデル] の設定では、[既定] を選択して、プロジェクトによって使用されるホスティング モデルを使用します。For the Hosting Model setting in Visual Studio 2019 or later, select Default to use the hosting model used by the project. プロジェクトのプロジェクト ファイルで <AspNetCoreHostingModel> プロパティが設定されている場合は、プロパティ (InProcess または OutOfProcess) の値が使用されます。If the project sets the <AspNetCoreHostingModel> property in its project file, the value of the property (InProcess or OutOfProcess) is used. プロパティが存在しない場合は、アプリの既定のホスティング モデルが使用され、それはインプロセスです。If the property isn't present, the default hosting model of the app is used, which is in-process. アプリの通常のホスティング モデルとは異なるホスティング モデルを明示的に設定する必要があるアプリの場合は、必要に応じて、[ホスティング モデル]In Process または Out Of Process に設定します。If the app requires an explicit hosting model setting different from the app's normal hosting model, set the Hosting Model to either In Process or Out Of Process as needed.

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

  1. ソリューション エクスプローラーで、プロジェクトを右クリックします。Right-click the project in Solution Explorer. [プロパティ] を選びます。Select Properties. [デバッグ] タブを開きます。Open the Debug tab.

  2. [プロファイル] で、[新規] ボタンを選択します。For Profile, select the New button. ポップアップ ウィンドウで、プロファイルに "IIS" という名前を付けます。Name the profile "IIS" in the popup window. [OK] をクリックして、プロファイルを作成します。Select OK to create the profile.

  3. [起動] の設定で、一覧から [IIS] を選択します。For the Launch setting, select IIS from the list.

  4. [ブラウザーの起動] チェック ボックスをオンにして、エンドポイント URL を指定します。Select the check box for Launch browser and provide the endpoint URL.

    アプリで HTTPS が必要な場合は、HTTPS エンドポイント (https://) を使用します。When the app requires HTTPS, use an HTTPS endpoint (https://). HTTP の場合は、HTTP エンドポイント (http://) を使用します。For HTTP, use an HTTP (http://) endpoint.

    前に指定した IIS 構成で使用されているものと同じホスト名とポートを指定します。通常は localhost です。Provide the same host name and port as the IIS configuration specified earlier uses, typically localhost.

    URL の最後でアプリの名前を指定します。Provide the name of the app at the end of the URL.

    たとえば、https://localhost/WebApplication1 (HTTPS) や http://localhost/WebApplication1(HTTP) は有効なエンドポイント URL です。For example, https://localhost/WebApplication1 (HTTPS) or http://localhost/WebApplication1 (HTTP) are valid endpoint URLs.

  5. [環境変数] セクションで、[追加] ボタンを選択します。In the Environment variables section, select the Add button. ASPNETCORE_ENVIRONMENT[名前] および Development[値] で環境変数を指定します。Provide an environment variable with a Name of ASPNETCORE_ENVIRONMENT and a Value of Development.

  6. [Web サーバーの設定] 領域で、[アプリの URL][ブラウザーの起動] エンドポイント URL に使用したものと同じ値に設定します。In the Web Server Settings area, set the App URL to the same value used for the Launch browser endpoint URL.

  7. Visual Studio 2019 以降の [ホスティング モデル] の設定では、[既定] を選択して、プロジェクトによって使用されるホスティング モデルを使用します。For the Hosting Model setting in Visual Studio 2019 or later, select Default to use the hosting model used by the project. プロジェクトのプロジェクト ファイルで <AspNetCoreHostingModel> プロパティが設定されている場合は、プロパティ (InProcess または OutOfProcess) の値が使用されます。If the project sets the <AspNetCoreHostingModel> property in its project file, the value of the property (InProcess or OutOfProcess) is used. プロパティが存在しない場合は、アプリの既定のホスティング モデルが使用され、それはアウトプロセスです。If the property isn't present, the default hosting model of the app is used, which is out-of-process. アプリの通常のホスティング モデルとは異なるホスティング モデルを明示的に設定する必要があるアプリの場合は、必要に応じて、[ホスティング モデル]In Process または Out Of Process に設定します。If the app requires an explicit hosting model setting different from the app's normal hosting model, set the Hosting Model to either In Process or Out Of Process as needed.

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

Visual Studio を使用していない場合は、起動プロファイルを Properties フォルダーの launchSettings.json ファイルに手動で追加します。When not using Visual Studio, manually add a launch profile to the launchSettings.json file in the Properties folder. 次の例では、HTTPS プロトコルを使用するようにプロファイルを構成しています。The following example configures the profile to use the HTTPS protocol:

{
  "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) が使用されていることを確認してください。Confirm that the applicationUrl and launchUrl endpoints match and use the same protocol as the IIS binding configuration, either HTTP or HTTPS.

プロジェクトを実行するRun the project

Visual Studio を管理者として実行します。Run Visual Studio as an administrator:

  • ビルド構成のドロップダウン リストが [デバッグ] に設定されていることを確認します。Confirm that the build configuration drop-down list is set to Debug.
  • [実行] ボタンを [IIS] プロファイルに設定し、ボタンを選択してアプリを起動します。Set the Run button to the IIS profile and select the button to start the app.

管理者として実行していない場合、Visual Studio によって再起動を求められる場合があります。Visual Studio may prompt a restart if not running as an administrator. その場合は、Visual Studio を再起動します。If prompted, restart Visual Studio.

信頼されていない開発証明書を使用すると、信頼されていない証明書に対する例外を作成するように、ブラウザーによって求められる場合があります。If an untrusted development certificate is used, the browser may require you to create an exception for the untrusted certificate.

注意

マイ コードのみとコンパイラの最適化を使用してリリースのビルド構成をデバッグすると、エクスペリエンスの品質が低下します。Debugging a Release build configuration with Just My Code and compiler optimizations results in a degraded experience. たとえば、ブレーク ポイントがヒットしません。For example, break points aren't hit.

その他の技術情報Additional resources