无法使用VS2010进行远程调试

30
我在同一个公司域中有一台服务器和一台工作站。我在这两台机器上都是本地管理员。我安装了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)。我尝试关闭了Windows防火墙服务,但仍遇到同样的问题。
我被完全卡住了!
服务器正在运行Windows 2003标准版SP2 32位,运行x86的MSVSMON。我的工作站正在运行Windows 7 Pro 64位和VS2010 Pro。

你尝试过在两台机器上禁用防火墙服务吗? - JaredPar
11
祝好运。在.NET领域中,让远程调试正常工作是我所遇到的最令人不愉快的任务。由于失败率极高,通常我会放弃并在测试服务器上安装VS。 - Kirk Woll
@Kirk 现在看来这是正确的方法! - Greg B
@JaredPar 两台机器的防火墙都已禁用。 - Greg B
8个回答

17

确保devenv.exe(Visual Studio)在带有DOMAIN复选框选中的防火墙程序异常列表中!

我曾处于同样的情况,在我的机器上停止了运行防火墙服务(win7 x64),但是直到我进行了这个更改,它才能正常工作。


这是什么鬼?!这个方法对我也起作用了!防火墙服务已经停止以尝试排除它的问题,但添加这个规则解决了它! - Tim Partridge

7

我曾经遇到同样的问题,我在虚拟机中运行VS2010,我将网络设置从NAT改为Bridged,可以进行双向ping,然后问题得以解决。


嗯,在这一点上我仍然收到“用户名或密码错误”的消息;虚拟机和主机共享一个工作组和帐户用户名/密码,防火墙已禁用并启用了DCOM。 - Matthew Read
嗯,改变主机PC连接到互联网的方法(以太网而不是USB共享网络)解决了问题。很奇怪。 - Matthew Read

5
在我的情况下:由于远程机器不是本地子网的一部分,所以我必须前往Windows防火墙 ->高级设置 ->入站规则。 选择 MS Visual Studio 的规则并将远程机器的IP地址添加到“Scope”部分。这是除了上述 Windows 防火墙设置之外的额外设置。

谢谢,这不完全是我的解决方案,但非常接近。对我来说,我必须将“域”添加到VS入站规则配置文件中。 - Josh Mc
也谢谢你,这个问题搞得我都快疯了。我不得不给两个 Visual Studio 条目添加“域”。 - Jeremy Whitcher

2
我猜这个问题有很多原因!我尝试了以上所有答案,但是都没有解决我的问题,但是这个方法可以: 通过禁用“管理兼容模式”选项,我设法使它正常工作。
为此,请按以下步骤在VS中进行设置: 工具->选项->调试->常规->禁用“使用托管兼容模式”。

1
这就是我的问题所在,它会产生“无法启动DCOM通信”的错误。 - tfcmad

2
以下方法有助于解决问题:
在安装了Visual Studio的计算机上运行 dcomcnfg.exe,进入: 组件服务 -> 计算机 -> 我的电脑 -> 属性 -> COM 安全性 -> 访问权限 -> 编辑限制 您应该授予 ANONYMOUS LOGON 远程访问权限。
不要随意更改其他权限,否则可能会引起麻烦。

1
我遇到的问题得以解决,是因为:
  1. 关闭本机兼容模式和托管兼容模式。
  2. 在Visual Studio 2013中,关闭启用本机编辑并继续。

enter image description here https://msdn.microsoft.com/en-us/library/2dbesfyx.aspx

我还重新启动了计算机(Windows的基本规则!)


0

我之前从未遇到过这个问题(我经常进行远程调试),但最近解决了它。

首先,我将问题缩小到了我的电脑上。当我禁用防火墙后,一切都恢复正常,所以我知道是我的机器和我的防火墙出了问题。

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”的条目,因为显然相同的规则已经在列表中,但名称不同,然后一切都恢复正常。

我猜测更新或者我的VS 2013 Express安装方式可能影响了防火墙设置,并且在列表中两次使用相同的规则会让计算机感到困惑。


0

我也遇到了同样的问题。我的原因是本地计算机启用了趋势网络安全,它阻止了连接。我无法停止它,因为我需要密码,所以我只删除了所有趋势进程,然后它就正常工作了。因此,您可以检查是否启用了某些防病毒软件或安全服务,并可能会阻止访问。


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