【问题标题】:MSVSMON over forwarded TCP connectionMSVSMON 通过转发的 TCP 连接
【发布时间】:2013-11-11 05:18:52
【问题描述】:

我有一个服务器,运行我编写的一些代码。不幸的是,出了点问题,我无法在我的开发机器上轻松重现它。

所以我想使用 VS 远程调试器对其进行远程调试。这通常没什么大不了的,但在这种情况下,我无法直接访问服务器,只能通过第二个服务器。所以我尝试将一些端口(14016,因为我不能直接使用4016)转发到目标机器的4016端口。

当我尝试附加到目标机器上运行的进程时,VS 告诉我远程调试器似乎没有在目标机器上运行。

我在使用 Wireshark 时看到的是 VS 通过 TCP 发送一些数据,其中包含 net.tcp://192.168.172.34:14016/Microsoft/VisualStudio/msvsmon 形式的 URI。 192.168.172.34:14016是做端口转发的中间服务器的IP和端口。这是有道理的,因为 VS 只知道这个服务器。

问题似乎是 MSVSMON 至少检查端口号或 IP 并使用 http://schemas.microsoft.com/ws/2006/05/framing/faults/EndpointNotFound 回答,如 Wireshark 中所见...

所以问题是:有没有办法通过转发的 TCP 连接进行调试?

【问题讨论】:

    标签: tcp remote-debugging visual-studio-debugging forwarding


    【解决方案1】:

    这对您来说可能为时已晚。但它可能会帮助那里的谷歌员工:

    这在类似的环境中对我有用。我不知道是否某些功能被破坏了,我只是不知道。我可以使用断点、单步执行和查看变量。对我来说够多的了。

    • 将“127.0.0.1 remote-debug”添加到远程计算机上的hosts file
    • 将“192.168.172.34 remote-debug”添加到开发机器上的 hosts 文件中。
    • 使用“/hostname remote-debug”启动 msvsmon.exe。
    • 将调试器连接到“remote-debug:14016”

    (以此为基本思路,你可能需要摆弄一下。也许根本不使用“/hostname”。也许使用网络IP而不是“127.0.0.1”。)

    【讨论】:

      猜你喜欢
      • 2020-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-12
      • 2013-02-19
      • 1970-01-01
      • 2014-07-01
      • 2012-04-26
      相关资源
      最近更新 更多