我必须附加什么进程才能使用 IIS Express 配置文件在 MVC 6 Web 应用程序中进行调试?
What process must I attach to for debugging an MVC 6 wep app using the IIS Express profile?
我正在拼命地尝试实现在 VS 2017 RC3 中调试 MVC 6(核心 1.1)网络应用程序的所谓非常简单的目标。正常调试不起作用,因为 VS 总是在尝试附加到程序时超时,正如我在 VS 2017 always times out debugging an MVC Core website on IIS Express profile 问题中询问的那样。现在我坚持 "Start without debugging",并尝试附加到实际托管我的应用程序的任何进程。
应用程序类型是控制台应用程序,它启动了 Kestrel 主机,但是这个控制台应用程序没有生成任何我可以在任何地方找到的 .exe
。当然,我已经尝试连接到 IIS Express,但是使用它,我的断点 none 曾经被击中。我相信在这些情况下,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
从命令行直接启动您的应用程序。这样您将在命令行中看到输出 window。您还可以使用 Main 方法打印进程 ID:
Console.WriteLine("Process ID: " + System.Diagnostics.Process.GetCurrentProcess().Id);
以便在需要时轻松确定附加到哪个进程。
我正在拼命地尝试实现在 VS 2017 RC3 中调试 MVC 6(核心 1.1)网络应用程序的所谓非常简单的目标。正常调试不起作用,因为 VS 总是在尝试附加到程序时超时,正如我在 VS 2017 always times out debugging an MVC Core website on IIS Express profile 问题中询问的那样。现在我坚持 "Start without debugging",并尝试附加到实际托管我的应用程序的任何进程。
应用程序类型是控制台应用程序,它启动了 Kestrel 主机,但是这个控制台应用程序没有生成任何我可以在任何地方找到的 .exe
。当然,我已经尝试连接到 IIS Express,但是使用它,我的断点 none 曾经被击中。我相信在这些情况下,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
从命令行直接启动您的应用程序。这样您将在命令行中看到输出 window。您还可以使用 Main 方法打印进程 ID:
Console.WriteLine("Process ID: " + System.Diagnostics.Process.GetCurrentProcess().Id);
以便在需要时轻松确定附加到哪个进程。