我拼命地试图实现在 VS 2017 RC3 中调试 MVC 6(Core 1.1)Web 应用程序这一看似非常简单的目标。正常的调试不起作用,因为 VS 在尝试附加到程序时总是超时,正如我的 VS 2017 always times out debugging an MVC Core website on IIS Express profile 中所询问的那样。问题。现在我陷入了“启动而不调试”的困境,并尝试附加到实际托管我的应用程序的任何进程。
该应用程序类型是控制台应用程序,它启动 Kestrel 主机,但该控制台应用程序没有生成我在任何地方都可以找到的 .exe
。当然,我尝试连接到 IIS Express,但使用它时,我的断点都没有被命中。我相信在这些场景中,IIS EXpress 只是充当实际控制台应用程序(即我的 MVC 应用程序)的代理,因此也许我应该附加到实际的 Web 应用程序进程,但该进程到底叫什么名字?
最佳答案
您需要附加到 dotnet.exe 进程。你可能有多个dotnet.exe(特别是如果你同时运行.NET Core项目VS)。通常,当您在 VS 中按 Ctrl+Shift+P 时,它将是第一个 dotnet.exe。
但是,您的症状看起来像是您的应用程序实际上根本没有启动,并且 IIS Express 无法找到该进程。我将从检查事件日志中是否有 IIS Express 相关事件开始,因为 IIS 会记录它启动的应用程序的进程 ID 以及失败(如果有)。
更好的调试方法可能是完全跳过 IIS Express,并使用 dotnet run
直接从命令行启动应用程序。这样您将在命令行窗口中看到输出。您还可以使用以下命令从 Main 方法中打印进程 ID:
Console.WriteLine("Process ID: " + System.Diagnostics.Process.GetCurrentProcess().Id);
以便在需要时轻松确定要附加到哪个进程。
关于asp.net-mvc - 我必须附加到什么进程才能使用 IIS Express 配置文件在 MVC 6 Web 应用程序中进行调试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42193174/