【问题标题】:Remote debugging using Visual Studio 2019 connected to Win2016使用连接到 Win2016 的 Visual Studio 2019 进行远程调试
【发布时间】:2021-10-15 02:01:41
【问题描述】:

我只是想知道是否有人可以帮助我找出“Visual Studio 远程调试工具”在连接到远程 Windows 2016 操作系统的 C# 应用程序上失败的原因?

只是为了让你知道我做了什么,我有gone here and downloaded the Remote Tools for 2019并成功安装在2016盒子上。

在服务器上,我还手动添加了以下防火墙规则来打开端口 4024(只是为了确定)

netsh advfirewall firewall add rule name="VisualStudio_Debug_4024_TCP_IN" dir=in action=allow protocol=TCP localport=4024
netsh advfirewall firewall add rule name="VisualStudio_Debug_4024_TCP_OUT" dir=out action=allow protocol=TCP localport=4024
netsh advfirewall firewall add rule name="VisualStudio_Debug_4024_UDP_IN" dir=in action=allow protocol=UDP localport=4024
netsh advfirewall firewall add rule name="VisualStudio_Debug_4024_UDP_OUT" dir=out action=allow protocol=UDP localport=4024

在服务器上,当我运行“Visual Studio 远程调试器”时,我以管理员身份运行它,当我在 Visual Studio 中连接时,我看到自己连接到在服务器上运行的“远程调试器应用程序”就好了。

然后,在我的笔记本电脑上,在 Visual Studio 中,当我转到 Debug->Attach to a process 并输入 Win2016 服务器名称时,它确实会显示服务器上运行的所有应用程序的任务列表(虽然它有点慢列出清单)

但是,当我点击“附加”时,我得到了死循环,最后弹出了这个错误!

它说远程调试器似乎没有在远程计算机上运行,​​但它显然是因为它允许我获取任务列表,我还可以看到自己在“远程调试器”的 UI 中连接服务器!!

我不知道从这里该做什么,也不知道还能做什么,我只能摸不着头脑。有谁知道我还能去哪里看看问题出在哪里?

任何帮助或指导将不胜感激。干杯。

【问题讨论】:

  • 从第一原则开始:在两台机器上完全禁用Windows防火墙。如果有防病毒软件正在运行,请也禁用该垃圾。然后重试远程调试会话,如果成功,则可以开始缩小范围。 This might also be helpful - 无需手动允许 200 亿个不同的端口,只需允许应用程序,它需要的任何端口都将被自动允许。
  • 感谢您的评论@Ian Kemp。不幸的是,同时关闭防火墙和防病毒软件说起来容易做起来难。该服务器位于公司网络中,因此您可以想象我需要通过多少圈才能禁用机器上的防火墙和防病毒软件。如果我现在提出服务票,我也许可以在经过技术委员会和变更委员会后的 3 个月内更新这个 SO 帖子! :) - 但是我现在只是要阅读您附加的链接,看看是否还有其他我错过的细节。谢谢
  • 嗨@IanKemp - 谢谢!!你提供的那个链接让我得到了答案。它在该页面上提到端口 4024 4025 需要在远程服务器上打开!我只打开了 4024。当我打开 4025 时,一切都开始工作了!如果您想为这篇文章创建答案,请告诉我,我会将其标记为已回答,否则我可以自己回答。再次感谢。

标签: c# visual-studio remote-debugging visual-studio-debugging


【解决方案1】:

感谢Ian Kemp 为我指明了正确的方向。

page 列出了远程计算机上需要打开的端口,才能进行远程调试。您需要打开的端口是:

  • 端口 4024
  • 端口 4025
  • 端口 3702(这是可选的,我自己没有打开这个端口)

显然,对于发布的每个新版本的 Visual Studio,端口号都会增加 2。

我打开了端口 4024,但没有打开 4025。为了打开这些端口,我在服务器和本地笔记本电脑上运行了这个批处理文件。

REM Open Port 4024    
netsh advfirewall firewall add rule name="VisualStudio_Debug_4024_TCP_IN" dir=in action=allow protocol=TCP localport=4024
netsh advfirewall firewall add rule name="VisualStudio_Debug_4024_TCP_OUT" dir=out action=allow protocol=TCP localport=4024
netsh advfirewall firewall add rule name="VisualStudio_Debug_4024_UDP_IN" dir=in action=allow protocol=UDP localport=4024
netsh advfirewall firewall add rule name="VisualStudio_Debug_4024_UDP_OUT" dir=out action=allow protocol=UDP localport=4024

REM Open Port 4025
netsh advfirewall firewall add rule name="VisualStudio_Debug_4025_TCP_IN" dir=in action=allow protocol=TCP localport=4025
netsh advfirewall firewall add rule name="VisualStudio_Debug_4025_TCP_OUT" dir=out action=allow protocol=TCP localport=4025
netsh advfirewall firewall add rule name="VisualStudio_Debug_4025_UDP_IN" dir=in action=allow protocol=UDP localport=4025
netsh advfirewall firewall add rule name="VisualStudio_Debug_4025_UDP_OUT" dir=out action=allow protocol=UDP localport=4025

嘿,快!它开始工作了!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-04
    • 2019-06-11
    • 2013-02-10
    • 1970-01-01
    • 2011-10-09
    • 2020-04-21
    相关资源
    最近更新 更多