从VS2017附加到docker内的运行进程

Tom*_*ška 15 c# containers visual-studio docker

有没有一种简单的方法来调试从Visual Studio远程主机上的Linux容器内运行的进程?

想象一下,我们在一些远程机器上部署了多个服务,在docker容器内部运行 - 开发环境.在测试期间,我们检测到其中一个服务的内部状态变得很糟糕,需要弄清楚那里发生了什么.我们不想在docker-compose up本地,因为我们可能无法模拟场景.

相反,我们想要附加到容器内的运行进程.

我读了几篇关于如何做到这一点的文章,但它们或者是关于Windows容器的(https://www.richard-banks.org/2017/02/debug-net-in-windows-container.html)或者只是简单的令人困惑(例如,我是否需要安装sshd才能从VS连接?我是否需要安装vsdbg,如下所述https://github.com/Microsoft/generator-docker/issues/130?)

我尝试将vsdbg与ssh一起安装到容器中,但Visual Studio无法找到任何远程连接(在Debug - > Attach to Process中).

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

Ive*_*nov 0

您可以尝试使用gdbssh进行调试,但这会将进程视为本机/非托管进程。它基本上用于调试 C++ 应用程序。

对于远程调试托管进程(C#、VB、F# 等),可以使用“VS 远程调试工具”,但它们仅适用于 Windows。因此,目前您无法在 Linux 容器上远程调试 C# 应用程序。希望这能澄清事情。