我曾多次使用 VS 2008 中的“附加到进程”功能,但从未真正在远程计算机上使用过。现在我必须这样做,而且我已经在网上读到了很多相关内容。经过一番尝试后,我已经不太确定如何继续。首先,这是我到目前为止所做的事情的快速列表:

测试机(Win XP Pro SP3 x86):

  • 安装Msvsmon
  • 将本地帐户的本地策略更改为“经典 - 本地用户以自己的身份进行身份验证”
  • 停用 Windows 防火墙(是的,不是一个好主意,但可以避免任何端口问题)
  • 植入要调试的应用程序的副本,包括 pdb 文件
  • 创建了一个与我的开发机器上具有相同名称和密码的用户帐户
  • 确保新创建的帐户是admin并且具有远程调试权限

VS 主机(Vista Home Premium x64 SP2、VS 2008 pro SP1)

  • 停用防火墙
  • 确保我可以通过 UNC 路径访问测试机(有效)

因此,网络通信有效。防火墙已关闭。Msvsmon 正在测试机上运行。但是当我尝试通过“附加到进程”进行连接并输入测试机器的计算机名称时,我得到了以下信息(翻译自德语):

无法建立具有“ TestMachine”名称的Visual Studio远程调试监视器的连接。Visual Studio Remote调试器不支持该Windows版本。

我花了一段时间才发现“不支持Windows版本”实际上是在试图说“身份验证错误”。

我什至尝试使用“无需身份验证的远程”而不是“标准”进行连接,尽管它对我不起作用,因为我需要调试托管代码。因此,我相应地调整了 Msvsmon 并且连接正常(我可以选择进程,但当然我无法真正调试)。所以这让我相信我遇到了身份验证问题。

最后,我的问题是:

如何在两台计算机上设置用户/身份验证,以便可以远程调试同一工作组中的托管代码?

本地用户名是相同的,但是如何允许“DEVMACHINE\me”在“me”实际上是“TESTMACHINE\me”的机器上进行远程调试?

谢谢 ;)

有帮助吗?

解决方案

我终于知道问题出在哪里了。远程调试器似乎无法在 Vista Home Premium 上运行(!),可以看出 这里:

远程调试不支持Vista Home Premium。远程调试需要一个支持完整Windows身份验证的操作系统。在Visual Studio的一些未来版本中,我们希望支持其他形式的身份验证。但是,我们目前与Windows身份验证息息相关。目前有两种选择 - 在本地购买Windows或Debug的商务版。

就我个人而言,我认为这很荒谬 - 我实际上拥有 Vista Business 许可证,但 Home Premium 已预装在我的开发计算机上,我只是将其留在那里。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top