asp.net-mvc - 我必须附加到什么进程才能使用 IIS Express 配置文件在 MVC 6 Web 应用程序中进行调试?

标签 asp.net-mvc asp.net-core asp.net-core-mvc iis-express visual-studio-2017

我拼命地试图实现在 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/

相关文章:

asp.net-mvc - 使用依赖注入(inject)在 AspNetCore Mvc 中配置 CookieAuthenticationOptions

asp.net - ASP.NET 5 中使用 OAuthBearerAuthentication 的 JWT 身份验证

asp.net-core - 如何在 Controller 内获取 @Url.Action 值

asp.net-mvc - 如何使用 ASP.NET 5 MVC 6 保护 Web API

jquery - 使用 ASP.NET MVC 和 JQuery 表单插件/文件上传检测 IsAjaxRequest()

c# - TDD:帮助编写可测试类

asp.net-mvc - ASP.NET MVC 与 Azure B2C 刷新 ID token 问题

asp.net-mvc - 将分组的 linq 对象传递给 View

macos - ASP.NET vnext 重写 Controller 中设置的状态代码。这是一个错误吗?

c# - 如何从同一项目中的另一个 Api Controller 调用 Api Controller