次の方法で共有


Visual Studio で ASP.NET または ASP.NET Core アプリをデバッグする

Visual Studio では、ASP.NET および ASP.NET Core アプリをデバッグできます。 このプロセスは、ASP.NET と ASP.NET Core の間で異なり、IIS Express またはローカル IIS サーバーで実行するかによって異なります。

手記

次の手順と設定は、ローカル サーバー上のデバッグ アプリにのみ適用されます。 リモート IIS サーバー上のアプリのデバッグでは、プロセスへのアタッチが使用され、これらの設定は無視されます。 IIS 上のアプリ ASP.NET リモート デバッグの詳細と手順については、「IIS コンピューター でのリモート デバッグ ASP.NET の 」または「リモート IIS コンピューターのリモート デバッグ ASP.NET Core の 」を参照してください。

組み込みの Kestrel サーバーと IIS Express サーバーは、Visual Studio に含まれています。 Kestrel は、ASP.NET Core プロジェクトの既定のデバッグ サーバーであり、事前構成されています。 IIS Express は、ASP.NET の既定のデバッグ サーバーです。

組み込みの IIS Express サーバーは Visual Studio に含まれています。 IIS Express は、ASP.NET および ASP.NET Core プロジェクトの既定のデバッグ サーバーであり、事前構成されています。 これはデバッグする最も簡単な方法であり、初期デバッグとテストに最適です。

ASP.NET Core の場合は、Kestrel Web サーバーでデバッグすることもできます。

ローカル IIS サーバーの前提条件

アプリを実行するように構成されたローカル IIS サーバー (バージョン 8.0 以降) で、ASP.NET または ASP.NET Core アプリをデバッグすることもできます。 ローカル IIS でデバッグするには、次の要件を満たす必要があります。

  • インストールされていない場合は、ASP.NET と Web 開発ワークロードをインストールします。 (Visual Studio インストーラーを再実行し、の変更 選択して、このワークロードを追加します)。

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

  • 適切なバージョンの ASP.NET または ASP.NET Core を使用して IIS をインストールして正しく構成します。 ASP.NET Core で IIS を使用する方法の詳細については、「ホスト ASP.NET Core on Windows with IIS」を参照してください。 ASP.NET については、「IIS と ASP.NET モジュールのインストール」を参照してください。

  • アプリが IIS でエラーなしで実行されていることを確認します。

ASP.NET Core アプリをデバッグする

https という名前の既定のプロファイル、またはプロジェクト名に基づくプロファイルが存在する場合があります。これは Kestrel Web サーバー用に構成されています。 代わりにローカル IIS でデバッグする場合は、ローカル IIS デバッグ前提条件を満たしていることを確認してください。

  1. Visual Studio のソリューション エクスプローラーで ASP.NET Core プロジェクトを選択し、[プロパティ] アイコンをクリックするか、Alt+Enter キーを押すか、右クリックして [プロパティ] を選択します。

  2. [デバッグ] タブを選択し、リンクをクリックして [デバッグ起動プロファイル UI を開く] を開きます。

    表示される UI は、プロジェクトの launchSettings.json ファイルの設定に対応します。 このファイルの詳細については、「ASP.NET Coreで複数の環境を使用する」の「開発と launchSettings.json」セクションを参照してください。

  3. デバッグ用に構成するプロファイルを選択します。

    • Kestrel の場合は、https プロファイルまたはプロジェクトの名前が付いたプロファイルを選択します。
    • IIS Express の場合は、ドロップダウンから [IIS Express 選択します。
    • ローカル IIS の場合は、新しい を選択し、新しい IIS プロファイルを作成します。
  4. [ブラウザーの起動] が選択されていることを確認します。

  5. URLアプリ URLアプリの SSL URL が正しいことを確認します。

    URL では、.NET Core または .NET 5 以降のホスト URL の場所を指定します。 プロジェクトに名前が付けられたプロファイル (つまり、 の commandName プロパティが Project) の場合、Kestrel サーバーは指定されたポートをリッスンします。 IIS プロファイルの場合、これは通常、アプリの URLと同じ値です。 詳細については、「プロジェクトの構成」の「IIS 起動プロファイル」セクションを参照してください。

    アプリ URLアプリ SSL URL アプリケーション URL を指定します。

    • https プロファイルの場合、通常、アプリ URL プロパティは https://localhost:7241;http://localhost:5175です。
    • プロジェクト名で付けられたプロファイルの場合、これらのプロパティは通常、http://localhost:5000https://localhost:5001です。
    • IIS Express の場合、アプリの SSL URL は通常 https://localhost:44334
  6. 環境変数で、ASPNETCORE_ENVIRONMENTDevelopmentの値を持っていることを確認します。 そうでない場合は、変数を追加します。

    ASP.NET コア デバッガー設定

    環境変数の詳細については、「環境の」を参照してください。

  7. アプリをデバッグするには、プロジェクトで、いくつかのコードにブレークポイントを設定します。 Visual Studio のツール バーで、構成が [デバッグに設定されていることを確認します。

  8. デバッグを開始するには、ツール バーでプロファイル名 (https、IIS Express、またはツール バーの IIS プロファイル名 など) を選択するか、デバッグ メニューから [デバッグの開始] 選択するか、F5キー 押します。 デバッガーはブレークポイントで一時停止します。 デバッガーがブレークポイントにヒットできない場合は、デバッグのトラブルシューティング を参照してください。

ASP.NET Core アプリをデバッグする

IIS Express が既定であり、構成済みです。 ローカル IIS でデバッグする場合は、ローカル IIS デバッグの 要件を満たしていることを確認してください。

  1. Visual Studio のソリューション エクスプローラーで ASP.NET Core プロジェクトを選択し、[プロパティ] アイコンをクリックするか、Alt+Enter キーを押すか、右クリックして [プロパティ] を選択します。

  2. デバッグ タブを選択します。

  3. [プロパティ] ペインの [プロファイル] の横で次のようにします。

    • IIS Express の場合は、ドロップダウンから [IIS Express 選択します。
    • ローカル IIS の場合は、ドロップダウンからアプリ名を選択するか、[新しい] 選択し、新しいプロファイル名を作成して、[OK]選択します。
  4. [起動] の横にあるドロップダウンから [IIS Express] または [IIS] を選択します。

  5. [ブラウザーの起動] が選択されていることを確認します。

  6. 環境変数で、ASPNETCORE_ENVIRONMENTDevelopmentの値を持っていることを確認します。 そうでない場合は、[ の追加] を選択して追加します。

    ASP.NET コア デバッガー設定

  7. ファイル選択した項目を保存 を使用するか、CtrlSして変更を保存します。

  8. アプリをデバッグするには、プロジェクトで、いくつかのコードにブレークポイントを設定します。 Visual Studio のツール バーで、構成が デバッグに設定されていることを確認し、エミュレーター フィールドに IIS Expressまたは新しい IIS プロファイル名 表示します。

  9. デバッグを開始するには、ツール バー IIS Express または IIS プロファイル名 を選択し、デバッグ メニューから [デバッグの開始] 選択するか、F5押します。 デバッガーはブレークポイントで一時停止します。 デバッガーがブレークポイントにヒットできない場合は、トラブルシューティング を参照してください。

ASP.NET アプリをデバッグする

IIS Express が既定であり、構成済みです。 ローカル IIS でデバッグする場合は、ローカル IIS デバッグの 要件を満たしていることを確認してください。

  1. Visual Studio ソリューション エクスプローラーの で ASP.NET プロジェクトを選択し、[プロパティ] アイコンをクリックするか、Alt キー Enterキーを押すか、右クリックして [プロパティ]選択します。

  2. [Web] タブを選択します。

    Web」タブが表示されない場合は、「デバッグ ASP.NET Core アプリ」を参照。 [Web] タブは、ASP.NET Framework の場合にのみ表示されます。

  3. [プロパティ] ペインの [サーバー] の下で、

    • Kestrel の場合は、ドロップダウンから https 選択します。
    • IIS Express の場合は、ドロップダウンから [IIS Express 選択します。
    • ローカル IIS の場合、
      1. ドロップダウンから [ローカル IIS] を選択します。
      2. [プロジェクト URL] フィールドの横にある [仮想ディレクトリの作成] 選択します (まだ IIS でアプリを設定していない場合)。
  4. [デバッガー]で、[ASP.NET]を選択します。

    ASP.NETデバッガーの設定を示すスクリーンショット。ASP.NETデバッガー設定する

  5. [ファイル 選択した項目を保存] を選択します (または、CtrlSキー 押して変更を保存します。

  6. アプリをデバッグするには、プロジェクトで、いくつかのコードにブレークポイントを設定します。 Visual Studio のツール バーで、構成が [デバッグに設定されていることを確認します。必要なブラウザーがエミュレーター フィールドの IIS Express (ブラウザー名) または ローカル IIS (ブラウザー名) に表示されていることを確認します。

  7. デバッグを開始するには、ツール バーの IIS Express (ブラウザー名) または ローカル IIS (ブラウザー名) を選択し、デバッグ メニューから [デバッグの開始] を選択するか、F5キー 押します。 デバッガーはブレークポイントで一時停止します。 デバッガーがブレークポイントにヒットできない場合は、デバッグのトラブルシューティングを参照してください。

デバッグのトラブルシューティング

ローカル IIS のデバッグをブレークポイントに進めることができない場合は、次の手順に従ってトラブルシューティングを行います。

  1. IIS から Web アプリを起動し、正しく実行されていることを確認します。 Web アプリは実行したままにします。

  2. Visual Studio で[デバッグ ][プロセスにアタッチ] を選択するか、CtrlAltP押して、ASP.NET または ASP.NET Core プロセス (通常は w3wp.exe または dotnet.exe) に接続します。 詳細については、「プロセス にアタッチする」および「ASP.NET プロセスの名前を見つける方法」を参照してください。

[プロセスにアタッチ]を使用してブレークポイントに接続し、ヒットできるが、[デバッグ]>[デバッグの開始] または [F5]を使用した場合にはヒットしない場合、おそらくプロジェクトのプロパティの設定が正しくない可能性があります。 HOSTS ファイルを使用する場合は、そのファイルも正しく構成されていることを確認します。

web.config ファイルでデバッグを構成する

ASP.NET プロジェクトには既定で web.config ファイルがあり、これには、デバッグ設定を含むアプリ構成と起動情報の両方が含まれます。 web.config ファイルは、デバッグ用に正しく構成されている必要があります。 前のセクションの プロパティ 設定では、web.config ファイルが更新されますが、手動で構成することもできます。

手記

ASP.NET Core プロジェクトには最初は web.config ファイルはありませんが、アプリの構成と起動情報には appsettings.json ファイルと launchSettings.json ファイルを使用します。 アプリを配置すると、プロジェクトに web.config ファイルが作成されますが、通常はデバッグ情報は含まれません。

ヒント

展開プロセスによって web.config 設定が更新される可能性があるため、デバッグを試みる前に、web.config がデバッグ用に構成されていることを確認してください。

デバッグ用に web.config ファイルを手動で構成するには:

  1. Visual Studio で、ASP.NET プロジェクトの web.config ファイルを開きます。

  2. Web.config は XML ファイルであるため、タグでマークされた入れ子になったセクションが含まれています。 configuration/system.web/compilation セクションを見つけます。 (compilation 要素が存在しない場合は、作成します)。

  3. compilation 要素の debug 属性が trueに設定されていることを確認します。 (compilation 要素に debug 属性が含まれていない場合は、追加して trueに設定します)。

    既定の IIS Express サーバーではなくローカル IIS を使用している場合は、compilation 要素の targetFramework 属性値が IIS サーバー上のフレームワークと一致していることを確認します。

    web.config ファイルの compilation 要素は、次の例のようになります。

    手記

    この例は、部分的な web.config ファイルです。 通常、configuration および system.web 要素には追加の XML セクションがあり、compilation 要素には他の属性や要素も含まれる場合があります。

    <configuration>
       ...
       <system.web>
           <compilation  debug="true"  targetFramework="4.6.1" ... >
              ...
           </compilation>
       </system.web>
    </configuration>
    

ASP.NET は、web.config ファイルへの変更を自動的に検出し、新しい構成設定を適用します。 変更を有効にするために、コンピューターまたは IIS サーバーを再起動する必要はありません。

Web サイトには複数の仮想ディレクトリとサブディレクトリを含め、それぞれに web.config ファイルを含めることができます。 ASP.NET アプリは、URL パスの上位レベルにある web.config ファイルから構成設定を継承します。 階層 web.config ファイル設定は、階層内の下位にあるすべての ASP.NET アプリに適用されます。 階層の下位にある web.config ファイルで別の構成を設定すると、上位のファイルの設定がオーバーライドされます。

たとえば、www.microsoft.com/aaa/web.configdebug="true" を指定した場合、aaa フォルダー内または aaa のサブフォルダー内のアプリは、その設定を継承します。ただし、いずれかのアプリが設定を独自の web.config ファイルでオーバーライドする場合を除きます。

重要

デバッグ モードでは、アプリのパフォーマンスが大幅に低下します。 運用アプリをデプロイしたり、パフォーマンス測定を行ったりするときは、web.configdebug="false" を設定し、リリース ビルドを指定します。