MSVSMON过度转发TCP连接

时间:2013-10-31 09:19:27

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

我有一台服务器,我运行的代码运行。不幸的是出了问题,我不能轻易地在我的开发机器上重现它。

所以我想使用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连接进行调试?

1 个答案:

答案 0 :(得分:1)

这对你来说可能为时已晚。但它可能会帮助那些谷歌的人:

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

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

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