无法使用 VS2010 进行远程调试

Posted

技术标签:

【中文标题】无法使用 VS2010 进行远程调试【英文标题】:Cannot get Remote Debugging working with VS2010 【发布时间】:2011-04-16 09:00:22 【问题描述】:

我在同一个公司域上有一台服务器和一台工作站。我的用户是两台机器上的本地管理员。我已经安装了 VS2010 版本的 MSVSMON 并将其设置为在我的用户 DOMAIN\greg.b 下的服务器上作为服务运行(我给自己设置了“作为服务登录”)。我使用我的域帐户登录服务器并启动远程调试监视器。然后我从我的 Visual Studio 连接到服务器。在服务器上的监视器中我可以看到

23/09/2010 16:26:33 DOMAIN\greg.b 已连接。

过了一会儿,我从 Visual Studio 中得到一个对话框,说

无法连接到名为“SERVER_NAME”的 Microsoft Visual Studio 远程调试监视器。目标计算机上的 Visual Studio 远程调试器无法连接回此计算机。防火墙可能会阻止通过 DCOM 与本地计算机进行通信。

我的工作站和服务器上都打开了 DCOM 端口 (TCP 135),名称为 detailed here。 我已经在关闭 Windows 防火墙服务的情况下进行了尝试。

我完全被难住了!

服务器正在运行 Windows 2003 Standard SP2 32 位,运行 x86 MSVSMON。我的工作站运行的是 Windows 7 Pro 64Bit 和 VS2010 Pro。

【问题讨论】:

你试过在两台机器上都禁用firewell服务的情况下吗? 祝你好运。让远程调试工作一直是我在 .NET 世界中做过的最不愉快的任务。如此失败,我通常在测试服务器上安装 VS。 @Kirk Punting 似乎是现在要走的路! @JaredPar 在两台机器上都禁用了防火墙。 【参考方案1】:

确保 devenv.exe (visual studio) 位于防火墙程序例外列表中并选中 DOMAIN 复选框!

我遇到了同样的情况,停止了在我的机器(win7 x64)上运行的防火墙服务,但在我进行此更改之前它没有工作。

【讨论】:

什么鬼!?这对我也有用!防火墙服务已停止以尝试将其排除为问题,但添加此规则修复了它!【参考方案2】:

我遇到了同样的问题,我在虚拟机中运行 VS2010,我将网络从 NAT 更改为桥接,可以 ping 2 种方式,它工作正常。

【讨论】:

嗯,此时我仍然收到“错误的用户名或密码”;虚拟机和主机共享一个工作组和帐户用户名/密码,禁用防火墙并启用 DCOM。 嗯,更改主机 PC 连接到互联网的方法(以太网而不是 USB 系绳)修复了它。奇怪。【参考方案3】:

同样的问题。我的原因是本地计算机中启用了 Trend 网络安全,它阻止了连接。我无法阻止它,因为我需要密码,所以我只是删除了所有 Trend 进程,然后它运行良好。因此,您可以检查是否启用了某些防病毒或安全服务并可能阻止访问。

【讨论】:

【参考方案4】:

在我的例子中:由于远程机器不是 本地子网的一部分,我不得不去 Windows 防火墙 -> 高级设置 -> 绑定规则。 选择 MS Visual Studio 的规则并将 远程机器的 IP 地址 添加到“Scope”部分。 这是对上述 Windows 防火墙设置的补充。

【讨论】:

谢谢,不完全适合我,但非常接近。对我来说,我必须在 vs 入站规则配置文件中添加“域”。 也谢谢,这让我发疯了。我必须将“域”添加到两个 Visual Studio 条目中。【参考方案5】:

对我的情况有帮助的是:

在你的VS所在的机器上运行dcomcnfg.exe,转到:

Component Services -> Computers -> My Computer -> Properties -> COM Security -> Access Permissions -> Edit Limits

您应该授予对匿名登录的远程访问权限。

不要乱用其他权限 - 可能会给您带来麻烦。

【讨论】:

【参考方案6】:

我只是遇到了这个问题(以前从来没有遇到过这个问题,我一直在远程调试)并解决了它。

我做的第一件事就是把它缩小到我的机器上的问题。当我禁用我的防火墙时,发现一切又正常了,所以我知道这是我的机器和防火墙。

http://msdn.microsoft.com/en-us/library/ee126350(v=vs.100).aspx 的 msdn 页面显示,如果防火墙列表中列出了“Microsoft Visual Studio”,请单击“允许另一个程序”并再次选择它。

当我单击“允许另一个程序”时,会弹出一个应用程序列表,但 Microsoft Visual Studio 不在该列表中,因此我浏览到 devenv.exe 并收到一条消息,它已经在列表中!幸运的是,它告诉我它认为它作为 Microsoft SQL Server Data Tools 在列表中。

所以我删除了“Microsoft Visual Studio”的条目,因为显然相同的规则已经在列表中,但名称不同,而且 viola 一切都可以再次运行。

我猜是更新或者我的 VS 2013 Express 安装以某种方式影响了防火墙设置,并且在其中设置了两次规则让我的计算机感到困惑。

【讨论】:

【参考方案7】:

解决我的问题的是这个

    关闭本机兼容模式和托管兼容模式。 在 Visual Studio 2013 中,关闭启用本机编辑并继续。

https://msdn.microsoft.com/en-us/library/2dbesfyx.aspx

我也重启了电脑(windows基本规则!)

【讨论】:

【参考方案8】:

我猜这个问题有一百万个原因! 我尝试了上述所有答案,但对我没有任何帮助,但是: 我设法通过禁用使用“托管兼容模式”的选项来使其工作

为此,请转到 VS 中的选项,例如: 工具 -> 选项 -> 调试 -> 常规 -> 禁用“使用托管兼容模式”

【讨论】:

这是我的问题,它产生了错误“无法启动 DCOM 通信”

以上是关于无法使用 VS2010 进行远程调试的主要内容,如果未能解决你的问题,请参考以下文章

VS远程调试

《转》VS2010进行远程调试方法总结

远程调试脚本代码VS2010

无法使用 VS2012 安装用于远程调试的 Windows Web 服务 API

如何远程调试VS网站

vs2010远程调试断点无效问题