Visual Studio 远程调试 Amazon EC2 机器

3
我正在尝试使用Visual Studio 2010远程调试来调试Amazon ec2云机器上的应用程序(以下称为REMOTE),但一直无法使其正常工作。
0)这两台机器: LOCAL运行Windows 7 Pro-64位 REMOTE运行Windows Server 2008-R2 64位
1)我在REMOTE机器上安装了远程调试监视器,并使用了64位版本的msvsmon.exe。虽然我有很多远程调试的经验,但通常都是在更简单的网络环境下进行的。
2)LOCAL机器的Windows防火墙已设置为允许devenv.exe发送任何内容。 入站规则允许TCP 135,UDP 500和4500端口。
3)在LOCAL和互联网之间,我们有: LOCAL路由器 将TCP和UDP端口1-1193和1195-48999转发到LOCAL
LOCAL Ooma盒子 将TCP和UDP端口1-1193和1195-48999转发到“LOCAL Router”
我已使用tcping.exe测试了端口45678的转发,所以我知道路由器和Ooma盒子的转发规则是有效的。
我已经测试了在我的本地网络上远程调试另一台计算机,它可以正确地工作。因此,如果LOCAL的防火墙存在问题,那么它似乎只能是范围(私有/公共/域)的问题。在我看来,我已经检查了所有防火墙规则中的三个框,因此我不认为范围是问题。尽管我对...有疑问。
4)EC2防火墙的安全组设置允许入站,我认为适用于: TCP 135 TCP 139 TCP 445 TCP 4015 UDP 0-65535
5)在REMOTE上,我创建了入站规则以允许: TCP 135、139、445和80 UDP 137、138、500和4500(尽管我不知道是否使用了IPSec)
6)我还允许msvsmon.exe配置防火墙,以允许从任何机器进行连接,这可能是多余的,但现在我正在尝试一切。
7)在msvsmon中,选择“工具”>“选项”,启用“无身份验证(仅本机)”,并选中“允许任何用户调试”。端口为4015。
8)在LOCAL上,将传输方式更改为“远程(仅本机且没有身份验证)”,并在限定符中输入REMOTE主机名。
然后,在REMOTE上,msvsmon显示“Doug已连接”。
太好了!除此之外,我什么都没有得到。等待一段时间后,在LOCAL上会出现“无法连接到[hostname]。远程计算机未响应。”

8) 我无法在远程计算机上关闭msvsmon。我可以单击“文件”>“退出”,但是然后msvsmon会冻结。

REMOTE上的ProcessHacker显示这些连接: msvsmon.exe(7364),[REMOTE Hostname],3893,,,TCP,Listen, msvsmon.exe(7364),[REMOTE Hostname],3894,,,TCP,Listen, msvsmon.exe(4232),[REMOTE Hostname],3901,[REMOTE Hostname],4015,TCP,已连接, msvsmon.exe(7364),[REMOTE Hostname],4015,,,TCP,Listen, msvsmon.exe(7364),[REMOTE Hostname],4015,[LOCAL hostname],58007,TCP,关闭等待, msvsmon.exe(7364),[REMOTE Hostname],4015,[REMOTE Hostname],3901,TCP,已连接,

本地的ProcessHacker如下: devenv.exe(4624),Ducky,58175,[RemoteHost],4015,TCP,FIN Wait 2,

如果等一个足够长的时间,“FIN Wait 2 connection”在本地会消失,但是在REMOTE上的“Close Wait”连接不会,除非我杀死msvsmon进程。

9) 所以似乎是REMOTE试图在不同的端口上联系LOCAL,但这不起作用?还是...?

我真的没有什么好主意了。显然我哪里出了问题。我已经尝试关闭本地和远程的Windows防火墙,但结果相同。

1个回答

2

明白了。至少,我终于建立了一个真正的连接。但我仍然不知道是哪个端口搞乱了一切。

我去Amazon EC2并允许所有TCP端口通过。我之前尝试过这样做,但当时肯定还存在其他问题。现在我需要找出是哪个端口阻止了正常工作。等我找到后会在此处发布。


我也遇到过同样的问题。折腾了好久……不是几个小时,而是几天。重新安装了VS、IIS等等,但始终无法解决。最终它又开始正常工作了。你最后解决了这个问题吗? - stink
糟糕。我把这个问题和我的下一个远程调试问题混淆了。由于在我的情况下,我可以通过打开所有端口但仅限于我的特定IP来使其安全,所以我没有继续推进它。我遇到了更奇怪的远程调试问题。远程调试非常方便,但当它不起作用时确实很痛苦。 - Doug Porter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接