代码之家  ›  专栏  ›  技术社区  ›  nikib3ro

我应该将Visual Studio调试器附加到哪个进程以调试Kestrel应用程序?

  •  6
  • nikib3ro  · 技术社区  · 6 年前

    我正在启动命令行并使用 dotnet run 命令。这将启动Kestrel并显示我的应用程序。

    我应该如何确定要将调试器附加到哪个进程,以便调试Kestrel现在托管的网站?

    我特别需要能够这样做-这意味着我不能使用标准的F5。

    2 回复  |  直到 5 年前
        1
  •  5
  •   Camilo Terevinto Chase R Lewis    6 年前

    不幸的是,目前还无法使用Visual Studio或.NET核心提供的工具来判断。不过,请注意,社区已经请求使用此功能 here 所以你可以在那里表达你的意见。

    目前,最好的选择是遵循以下步骤 to find out the id of the process given the application's port 以下内容:

    1. 运行 netstat -abon | findStr "127.0.0.1:{PORTNUMBER}"
    2. 查找上面返回的进程的ID,为了更快地查找,名称将为 dotnet.exe

    如果您觉得有冒险精神,您可能需要使用类似PowerShell的东西,它将直接返回端口号:

     $string = netstat -abon | findStr "127.0.0.1:{PORTNUMBER}"; $results = $string.split(' '); $results[$results.length - 1]
    
        2
  •  2
  •   S.Serpooshan    5 年前

    你可以 print the pid to the console and use that to select from Ctrl-Alt-P

    Console.WriteLine($"Running at pid {System.Diagnostics.Process.GetCurrentProcess().Id}");