【问题标题】:Remote debugging across domains跨域远程调试
【发布时间】:2010-09-06 23:28:35
【问题描述】:
我在两个不同的域中有两台机器。在两者上我都安装了 VS 2005。我想在他们之间进行远程调试。没有身份验证是可能的,但我想调试托管代码。我不想直接调试,因为它真的很糟糕。
当我尝试使用调试器附加时,我收到消息“此工作站和主域之间的信任关系失败。”知道如何克服这个问题吗?我尝试了在两台机器上添加相同本地用户名的技巧,但没有运气。
编辑:我在两台机器上都有相同的本地用户。我使用本地用户使用 RunAs 启动了 VS2005 和调试监视器。我在调试机器上打开了 Windows 审计,我看到来自 VS2005 机器的本地用户正在尝试登录。但他失败并出现错误 0xC000018D (ERROR_TRUSTED_RELATIONSHIP_FAILURE)
【问题讨论】:
标签:
visual-studio
debugging
managed-code
【解决方案1】:
Gregg Miskely 对此有一个blog post。如果两个本地帐户具有相同的用户名和密码,您可能会使其工作。您也可以尝试将您的好盒子从它的域中删除,以便您从一个工作组转到一个域,而不是从一个域到另一个域。
【解决方案2】:
我似乎记得,有时我发现在运行 msvcmon(或本周所称的任何东西 - 远程调试存根)时使用 RunAs 很有用,可以强制它以您设置的用户身份启动在两台机器上都一样。
我猜想在您运行 VS 的机器上,您还需要以本地用户而不是域用户身份登录(或使用 RunAs 启动 VS)。
我一直不明白为什么这需要如此困难,因为非托管调试要容易得多,并且必须暴露托管调试可能存在的所有安全漏洞。
【解决方案3】:
博客文章并不完全清楚这是否可行,但我能够将 Visual Studio 作为我的域帐户运行,并且仍然可以在不在域中的计算机上调试进程。
我在 Active Directory 域 DOMAIN 上有一台物理开发机器 PHYSICAL。我以DOMAIN\employee 身份登录并运行Visual Studio。
我有一个虚拟机VIRTUAL,它根本没有连接到 Active Directory 域。这是运行我要调试的进程的机器。
如博文所述,创建本地帐户PHYSICAL\employee(PHYSICAL)和VIRTUAL\employee(VIRTUAL)。他们都必须是管理员,并且密码与DOMAIN\employee 相同。
以VIRTUAL\employee 登录时,远程调试器和要调试的进程必须在VIRTUAL 上运行。然后在PHYSICAL 以DOMAIN\employee 登录时,我可以使用“附加到进程...”并连接到VIRTUAL 以获取进程列表。