【问题标题】:Visual Studio Remote Debug to Amazon EC2 machine到 Amazon EC2 机器的 Visual Studio 远程调试
【发布时间】:2013-11-27 21:20:09
【问题描述】:

我正在尝试使用 Visual Studio 2010 远程调试来调试 Amazon ec2 云机器上的应用程序 [从这里称为 REMOTE],但无法使其正常工作。

0) 机器: LOCAL 正在运行 Windows 7 Pro-64 位 REMOTE 正在运行 Windows Server 2008-R2 64 位

1) 我在远程机器上安装了远程调试监视器和诸如此类的东西(我在远程调试方面有很多经验,通常只是在更简单的网络情况下)。我使用的是 64 位版本的 msvsmon.exe

2) 本地计算机的 Windows 防火墙设置为允许 devenv.exe 发送任何内容。

传入规则允许端口 TCP 135、UDP 500 和 4500

在 LOCAL 和我们拥有的互联网之间:

本地路由器 将 TCP 和 UDP 端口 1-1193 和 1195-48999 转发到 LOCAL

本地 Ooma 盒子 将 TCP 和 UDP 端口 1-1193 和 1195-48999 转发到“本地路由器”

我已经用 tcping.exe 和端口 45678 测试了转发,并且可以正常工作,所以我知道路由器和 ooma 框的转发规则正在工作。

我已经在本地网络上测试了对另一台机器的远程调试,它可以正常工作。因此,如果 LOCAL 的防火墙出现问题,似乎只能是范围(私有/公共/域)。我们这里没有涉及域。据我所知,我已经检查了我查看过的每个防火墙规则中的所有 3 个框,所以我认为范围不是问题。虽然我想知道

3) EC2 防火墙的安全组设置允许我认为适用的入站: TCP 135 TCP 139 TCP 445 TCP 4015 UDP 0-65535

4) 在 REMOTE 上,我创建了入站规则以允许: TCP 135、139、445 和 80 UDP 137、138、500、4500(据我所知,虽然我没有使用 IPSec)

5) 我还允许 msvsmon.exe 配置防火墙以在我启动它时允许来自任何机器的连接,这可能是多余的,但此时我正在尝试一切。

6) 在 msvsmon 的工具 > 选项中,我启用“无身份验证(仅限本机)”并选中“允许任何用户调试”。端口是 4015。

7) 在 LOCAL 上,我将 Transport 更改为“Remote (native only with no authentication)”。我将 REMOTE 主机名放在 Qualifier 中。

然后,在 REMOTE 上,msvsmon 显示“Doug connected”。

太棒了!除了我什么都得不到。等待后,在 LOCAL 上,我得到“无法连接到 [主机名]。远程计算机没有响应。”

8) 我无法远程关闭 msvsmon。我可以单击文件 > 退出,但 msvsmon 然后冻结。

REMOTE 上的 ProcessHacker 显示了这些连接: msvsmon.exe (7364), [远程主机名], 3893, , , TCP, Listen, msvsmon.exe (7364), [远程主机名], 3894, , , TCP, Listen, msvsmon.exe (4232), [远程主机名], 3901, [远程主机名], 4015, TCP, 已建立, msvsmon.exe (7364), [远程主机名], 4015, , , TCP, Listen, msvsmon.exe (7364), [远程主机名], 4015, [本地主机名], 58007, TCP, 关闭等待, msvsmon.exe (7364),[远程主机名],4015,[远程主机名],3901,TCP,已建立,

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

如果我想要足够长的时间,LOCAL 上的“FIN Wait 2 connection”会消失,但 REMOTE 上的“Close Wait”连接直到我终止 msvsmon 进程后才会消失。

9) 所以似乎 REMOTE 试图在不同的端口上联系 LOCAL 并且没有通过?还是……?

我真的没有想法。很明显,我在某个地方出了点问题。我已经尝试关闭本地和远程的 windows 防火墙并获得相同的结果。

【问题讨论】:

    标签: visual-studio-2010 networking amazon-ec2 remote-debugging


    【解决方案1】:

    知道了。至少,我终于有了真正的联系。我还是不知道是哪个端口搞砸了。

    我去了 Amazon EC2 并允许所有 TCP 端口通过。我之前尝试过,但是当我这样做时,我一定在其他地方遇到了问题。现在我需要找出阻止工作的端口。到时候我会在这里发帖。

    【讨论】:

    • 我有同样的事情。永远搞砸了……几天而不是几小时。重新安装,VS,IIS ...永远无法弄清楚,但最终它又开始工作了。你有想过吗?
    • 哎呀。把这个和我在远程调试传奇中的下一个问题混为一谈。因为在我的情况下,我可以通过打开所有端口来确保它的安全,但只是针对我的特定 IP,所以我没有推动它。我遇到了更奇怪的远程调试问题。可惜远程调试太方便了,当它不起作用时确实很痛苦。
    猜你喜欢
    • 2016-05-21
    • 2021-06-20
    • 2012-09-14
    • 2023-03-29
    • 2018-07-26
    • 1970-01-01
    • 2011-06-22
    • 2019-02-26
    • 2011-01-13
    相关资源
    最近更新 更多