C# 从VS2017附加到docker内部正在运行的流程

C# 从VS2017附加到docker内部正在运行的流程,c#,visual-studio,docker,containers,C#,Visual Studio,Docker,Containers,有没有一种简单的方法可以从VisualStudio调试远程主机上Linux容器中运行的进程 设想一个场景,其中我们在某台远程机器上部署了多个服务,运行在docker containers-dev环境中。在测试期间,我们检测到其中一个服务的内部状态变为currupt,需要了解其中发生了什么。我们不希望docker在本地编写,因为我们可能无法模拟场景 相反,我们希望附加到容器内正在运行的进程 我读了几篇关于如何做到这一点的文章,但它们要么是关于Windows容器()的,要么就是让人很困惑(例如,我是

有没有一种简单的方法可以从VisualStudio调试远程主机上Linux容器中运行的进程

设想一个场景,其中我们在某台远程机器上部署了多个服务,运行在docker containers-dev环境中。在测试期间,我们检测到其中一个服务的内部状态变为currupt,需要了解其中发生了什么。我们不希望docker在本地编写,因为我们可能无法模拟场景

相反,我们希望附加到容器内正在运行的进程

我读了几篇关于如何做到这一点的文章,但它们要么是关于Windows容器()的,要么就是让人很困惑(例如,我是否需要安装sshd才能从VS连接到它?我是否需要安装vsdbg,如本文所述?)

我尝试将vsdbg与ssh一起安装到容器中,但是visualstudio无法找到任何远程连接(在Debug->attachtoprocess中)

是否有专门针对VS2017、远程调试和Docker Linux容器的教程

您可以尝试使用gdb和ssh进行调试,如本页所示: 但这会将进程视为本机/非托管进程。基本上是调试C++应用程序。p> 对于托管进程C#、VB、F#等的远程调试,可以使用“VS远程调试工具”,但它们仅适用于Windows。所以要知道,您不能在Linux容器上远程调试C#应用程序。
希望这能澄清问题。

要公开这些问题,您必须安装远程调试工具。通常,在使用windows时,每个visual studio都有一个不同的版本,但这应该适用于2017年及以后版本的visual studio


根据本文档和一个案例,使用vsdbg将不同于sshd:如果可能,您可以查看它们的详细步骤。您是否找到有关此主题的任何信息?我有一个类似的问题-