跨域远程调试

时间:2008-08-27 07:21:35

标签: visual-studio debugging managed-code

我在两个不同的域中有两台机器。我都安装了VS 2005。我想在它们之间进行远程调试。没有身份验证,这是可能的,但我想调试托管代码。我不想直接调试,因为它真的很糟糕。

当我尝试使用调试器附加时,我收到消息“此工作站与主域之间的信任关系失败”。知道怎么克服这个吗?我尝试了在两台机器上添加相同的本地用户名但没有运气的技巧。

编辑:我在两台机器上都有相同的本地用户。我使用本地用户启动了使用RunAs的VS2005和调试监视器。我在调试机器上打开了Windows审核,我看到VS2005机器的本地用户正在尝试登录。但他失败了,错误0xC000018D(ERROR_TRUSTED_RELATIONSHIP_FAILURE)

3 个答案:

答案 0 :(得分:5)

Gregg Miskely对此有一个blog post。如果两个本地帐户具有相同的用户名和密码,您可以使用它。您也可以尝试从其域中删除您的好框,这样您就可以从工作组转到域而不是从域到域。

答案 1 :(得分:1)

我似乎记得我有时发现在运行msvcmon(或本周所谓的任何东西 - 无论如何都是远程调试存根)时使用RunAs很有用,强制它以你设置的用户身份启动在两台机器上都是一样的。

我猜想在你运行VS的机器上,你还需要以本地用户而不是域用户身份登录(或者使用RunAs启动VS)。

我从来没有理解为什么这需要如此努力,因为非托管调试非常简单,并且必须暴露管理调试所能带来的每个安全漏洞。

答案 2 :(得分:0)

博客文章并不完全清楚这可行,但我能够将Visual Studio作为我的域帐户运行,并且仍然在不在域上的计算机上调试进程。

我在Active Directory域PHYSICAL上有一台物理开发计算机DOMAIN。我已登录并以DOMAIN\employee身份运行Visual Studio。

我有一个虚拟机VIRTUAL根本没有附加到Active Directory域。这是运行我想要调试的进程的机器。

如博客文章所述,创建本地帐户PHYSICAL\employeePHYSICAL)和VIRTUAL\employeeVIRTUAL)。他们都必须是管理员,并且密码与DOMAIN\employee相同。

远程调试器和调试过程必须在VIRTUAL上运行,同时以VIRTUAL\employee身份登录。然后在PHYSICAL登录DOMAIN\employee后,我可以使用“附加到流程...”并连接到VIRTUAL以获取流程列表。