Visual Studio (VS2008) 中的远程调试,Windows 窗体应用程序
Posted
技术标签:
【中文标题】Visual Studio (VS2008) 中的远程调试,Windows 窗体应用程序【英文标题】:Remote Debugging in Visual Studio (VS2008), Windows Forms Application 【发布时间】:2010-09-28 14:35:23 【问题描述】:我正在尝试远程调试 Windows 窗体应用程序 (C#),但我总是收到此错误:
无法连接到 Microsoft Visual Studio 远程调试监视器 名为'XXX. Visual Studio 遥控器 目标计算机上的调试器无法 连接回这台计算机。 身份验证失败。请看帮助 寻求帮助。
我尝试根据 MSDN 指南进行配置,但无法成功。
我的设置:
开发计算机 - XP (x86) 连接到域。 测试计算机 - 不是的 Vista (x86) 连接到域。 我之间有网络连接 机器。 我在测试中创建了一个本地用户 计算机 (user1) 与我的域的名称 我运行 Visual Studio (mydomain\user1) 的用户。设置相同的密码。在测试计算机上,我将 "msvsmon.exe" 作为应用程序(而不是服务)运行,我使用 "runas" 命令运行它我创建的用户。 (用户 1):
runas /u:user1 msvsmon.exe
有人可以帮帮我吗?
谢谢。
【问题讨论】:
投了赞成票只是因为您提出了很好的问题并包含了良好的数据。 wintellect.com/vs-remote-debugging-across-workgroups-or-domains 【参考方案1】:我遇到的问题是我有 2 个用户:
mydomain\user1
mytestmachine\user1
这是不正确的(根据 Gregg Miskely 的说法)我需要在我的开发计算机中定义一个本地用户,例如:
mydevcomputer\debug
mytestmachine\debug
使用相同的密码并使用此用户运行 VS2008 和调试监视器:
【讨论】:
【参考方案2】:这对我来说是这样的:
远程计算机:Microsoft Virtual PC,“IHS\RDM”附加到我的公司域,以 jdoe、管理员帐户登录。
本地计算机:附加到本地域,以jdoe,管理员帐户登录。
1) 远程计算机:安装 rdbgsetup.exe(来自 Visual Studio 2005\Disk 2\Remote Debugger\x86)
2) 远程计算机:RUNAS /user MYDOMAIN\jdoe /netonly msvsmon
3) 远程计算机:msvsmon->Tools->permissions add user "MYDOMAIN\jdoe"(每次重启都要这样做)
4) 本地计算机:运行 msvsmon。
5)本地计算机,msvsmon->Tools->权限,添加对象类型:“computers”,“IHS\RDM”
6)本地计算机,vs2005->调试->附加到进程。传输:默认,限定符:jdoe@RDM
7) 刷新,瞧;进程列表!
【讨论】:
【参考方案3】:Gregg Miskely 有一个blog post 说明为什么服务帐户需要具有管理员权限(以这种方式设置时)。其中一点是用户帐户,在您的情况下是测试机器上的用户,必须具有连接回另一台计算机的权限。听起来您遇到了帐户 mydomain\user1 没有足够权限连接到您的开发计算机的情况。
如果这对阅读 Gregg 的博客文章没有帮助,那么向他发送邮件可能会有所帮助。
【讨论】:
【参考方案4】:TESTCOMPUTER\user1
和mydomain\user1
的密码一样吗?
您也可以尝试在目标计算机上运行msvsmon.exe
而不是远程调试服务。您可以使用“运行方式...”在各种凭据下运行它。使用 msvsmon,exe
完成工作后,您应该能够安装(或重新启用)远程调试器服务,使其在这些凭据下运行。
编辑:
您应该能够使用msvsmon.exe
中的权限属性页在目标计算机上为您的域用户设置适当的调试权限:
http://msdn.microsoft.com/en-us/library/ms164722.aspx
【讨论】:
他们有相同的密码,我没有把它作为服务运行,我运行的是exe文件, 我在 MSDN 上的某处读到,如果两台机器之间没有双向完全信任关系,则不可能做到这一点。【参考方案5】:因此,您是一名开发人员,并且您的一个用户遇到了异常,并且您想在不关闭异常窗口的情况下远程调试它,但他们以不同的用户帐户登录。事实证明,您可以调试他们的应用程序,但这会变得很棘手。
0) 您仍然需要在远程应用计算机和本地 Visual Studio 计算机上匹配本地帐户,这意味着将帐户添加到用户的计算机。
1) 您需要使用带有 /netonly 选项的 runas。打开命令提示符到 msvsmon 所在的文件夹并键入
runas /user:[user] /netonly msvsmon
这会导致 msvsmon 仅在访问网络时使用用户的凭据(例如,当 msvsmon 连接回本地 VS 机器时)。如果你用 runas 调用它而不使用 /netonly,msvsmon 会感到不安。
2) 您需要通过远程调试监视器的工具->权限菜单为本地 Visual Studio 机器添加权限以连接远程应用程序机器。
【讨论】:
但是我们有什么不同的域?或者一台计算机连接到域而另一台没有?【参考方案6】:所以没有账号我不能回复,只能回复我自己的cmet,但是我的注册账号和我发帖的匿名账号是分开的,所以这必须是一个“新答案”。对不起。
baget - 当我今天早些时候完成这项工作时,我在 Remote Debug Monitor PC 和 Visual Studio PC 上都创建了一个本地帐户。 RDM 不在域上,VS 在。两个本地帐户都是管理员,其凭据与我的域帐户相同。从另一个帐户(也是管理员),我使用 netonly 开关从提升的提示符中调用 runas。您可能需要也可能不需要为您的域提供用户名,但由于密码应该全部匹配,我认为这并不重要。
不要忘记在 RDM 中调整您的权限,以允许运行 VS 的用户帐户以调试权限连接。它允许您添加到列表中的人非常挑剔,因此如果您不首先创建本地帐户,您会感到非常沮丧。如果您在不同的用户帐户名下运行 RDM,则在尝试连接到远程计算机时必须使用完整的服务器名称;如果您从同一个用户帐户同时运行 RDM 和 VS,那么您只需使用计算机名即可。
【讨论】:
以上是关于Visual Studio (VS2008) 中的远程调试,Windows 窗体应用程序的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 2010 显示旧的 Visual Studio 2008“添加引用”对话框
是否可以使用 VS2008 开发版打开 Visual Studio 2008 数据库项目?
在 Visual Studio 2008 Express Edition (VS2008EE) 中配置 64 位编译
从 Visual Studio C++ 6.0 到 VS 2008?
为啥使用microsoft visual studio2008时反应缓慢?????????????? 急!!!!!!!!!!