Asp.Net 核心:调试 - 附加到进程不起作用

Asp.Net Core: Debug -Attach to process is not working

我们在 .Net Framework 中调试 运行 "IISExpress" 进程的方式是在 Visual Studio 中附加一个名为 "iisexpress.exe" 的进程。但是附加 iisexpress 进程在 .Net 核心中不起作用。它显示消息 - "The breakpoint will not currently be hit. No symbols have been loaded for this document."

要在 .Net 核心中调试 运行 iisexpress 实例,您必须在 Visual Studio 中附加“dotnet.exe”进程。
*更新 - 1:如果 dotnet.exe 对您不起作用,请同时检查“{projectName}.exe”。 *更新 -2:附加“iisexpress.exe”适用于 .net 5

就我而言,使用 Asp.Net Core 2.2 和 InProcess 托管模型,接受的答案不起作用。但是,我应该从菜单中选择 Debug > Attach to process,然后选择 select "Show processes from all users" 复选框(在进程列表下方)和 select "iisexpress.exe"。它工作正常并达到了断点。

Visual studio does not loads all dlls (don't know why). Try this:

1) 首先附加 w3wp.exe(对于 InProcess 托管)或 dotnet.exe(对于 OutOfProcess 托管)

2) 手动加载符号:

转到调试 > Windows > 模块(或尝试快捷方式 Ctrl + Alt + U)

搜索要调试的 select dll(和依赖的 dll)并右键单击 > 加载符号。

在 Visual Studio 2019 年使用 "dotnet watch run" 我无法再附加到 "dotnet.exe" 进程,我会收到无法加载符号错误,花了我一段时间才弄清楚但是我附加到 运行 进程列表中的 [project name].exe,我可以成功地将调试器附加到一个加载了符号并调试的进程。