.Net Frameworkで実行中の「IISExpress」プロセスをデバッグするために使用される方法は、Visual Studioで「iisexpress.exe」という名前のプロセスをアタッチすることです。しかし、iisexpressプロセスのアタッチは.Netコアでは機能しません。 「ブレークポイントは現在ヒットしません。このドキュメントにはシンボルがロードされていません。」というメッセージが表示されます。
.Netコアで実行中のiisexpressインスタンスをデバッグするには、Visual Studioで "dotnet.exe"プロセスをアタッチする必要があります。
私の場合、InProcess
ホスティングモデルでAsp.Net Core 2.2を使用すると、受け入れられた回答が機能しません。しかし、メニューから選択する必要がありますDebug
> Attach to process
、次に"すべてのユーザーのプロセスを表示"チェックボックス(プロセスのリストの下)を選択し、"iisexpress.exe"を選択します。正常に動作し、ブレークポイントに到達します。
Visual Studio 2019で「dotnet watch run」を使用すると、「dotnet.exe」プロセスにアタッチできなくなったため、シンボルを読み込めませんでしたというエラーが表示され、理解に時間がかかりましたが、代わりに[プロジェクト名] .exeは実行中のプロセスのリストにあり、シンボルをロードしてデバッグするプロセスにデバッガを正常にアタッチできました。
Visual StudioはすべてのDLLをロードしません(理由はわかりません)。これを試して:
1)最初にw3wp.exe(InProcess Hostingの場合)またはdotnet.exe(OutOfProcess Hostingの場合)で接続します。
2)シンボルを手動でロードします。
[デバッグ]> [ウィンドウ]> [モジュール]に移動します(またはショートカットCtrl + Alt + Uを試してください)
デバッグするdll(および依存するdll)を検索して選択し、右クリックして[シンボルをロード]を選択します。