提问人:Michal Sznajder 提问时间:8/27/2008 最后编辑:DMKMichal Sznajder 更新时间:7/13/2013 访问量:2493
跨域远程调试
Remote debugging across domains
问:
我在两个不同的域中有两台计算机。在这两个上,我都安装了VS 2005。我希望在它们之间进行远程调试。没有身份验证是可能的,但我想调试托管代码。我不想直接调试,因为它真的是蹩脚的机器。
当我尝试使用调试器进行附加时,我收到消息“此工作站与主域之间的信任关系失败”。知道如何克服这个问题吗?我尝试了在两台机器上添加相同的本地用户名的技巧,但没有运气。
编辑:我在两台机器上都有相同的本地用户。我使用本地用户启动了 VS2005 和带有 RunAs 的调试监视器。我在调试计算机上打开了 Windows 审核,我看到 VS2005 计算机的本地用户正在尝试登录。但他因错误0xC000018D(ERROR_TRUSTED_RELATIONSHIP_FAILURE)而失败
答:
我似乎记得,我有时发现在运行 msvcmon(或本周称为远程调试存根)时使用 RunAs 很有用,以强制它以用户身份启动,您已将其设置为在两台计算机上相同。
我猜在运行 VS 的机器上,您还需要以本地用户而不是域用户身份登录(或使用 RunAs 启动 VS)。
我一直不明白为什么这需要如此困难,因为非托管调试要容易得多,并且必须暴露托管调试可能存在的所有安全漏洞。
格雷格·米斯克利(Gregg Miskely)有一篇关于此的博客文章。如果两个本地帐户具有相同的用户名和密码,则可能会使其正常工作。您也可以尝试从其域中删除您的好盒子,以便您从一个工作组转到一个域,而不是从一个域转到另一个域。
这篇博文并不完全清楚这是否可行,但我能够将 Visual Studio 作为我的域帐户运行,并且仍然在不在域中的计算机上调试进程。
我在 Active Directory 域上有一台物理开发计算机。我已登录并以 .PHYSICAL
DOMAIN
DOMAIN\employee
我有一个虚拟机,它根本没有连接到 Active Directory 域。这是运行我要调试的进程的机器。VIRTUAL
就像博客文章所说,创建本地帐户 (on ) 和 (on )。它们都必须是管理员,并且具有与 相同的密码。PHYSICAL\employee
PHYSICAL
VIRTUAL\employee
VIRTUAL
DOMAIN\employee
远程调试器和调试进程必须在以 身份登录时运行。然后在登录时使用,因为我可以使用“附加到进程...”并连接到以获取进程列表。VIRTUAL
VIRTUAL\employee
PHYSICAL
DOMAIN\employee
VIRTUAL
评论