Visual Studio(VS2008)中的远程调试,Windows窗体应用程序

时间:2008-12-28 11:27:23

标签: c# .net visual-studio-2008 debugging remote-debugging

我正在尝试远程调试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

有人能帮助我吗?

感谢。

6 个答案:

答案 0 :(得分:9)

我遇到的问题是我有2个用户:

mydomain\user1
mytestmachine\user1

这是不正确的(据Gregg Miskely说)我需要在我的开发计算机中定义一个本地用户,例如:

mydevcomputer\debug
mytestmachine\debug

使用相同的密码并使用此用户运行VS2008和调试监视器:

答案 1 :(得分:7)

这就是我的工作方式:

远程计算机: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->工具 - >权限添加用户“MYDOMAIN \ jdoe”(每次重新启动时都必须这样做)

4)本地计算机:运行msvsmon。

5)本地计算机,msvsmon->工具 - >权限,添加对象类型:“计算机”,“IHS \ RDM”

6)本地计算机,vs2005-> debug->附加到进程。运输:默认,限定符:jdoe @ RDM

7)刷新,瞧;进程列表!

答案 2 :(得分:2)

Gregg Miskely对服务帐户需要具有管理员权限的原因blog post有一个{{3}}。其中一点是,用户帐户(在您的情况下是测试计算机上的用户)必须具有连接回另一台计算机的权限。听起来您遇到的情况是帐户mydomain \ user1没有足够的权限连接到您的开发计算机。

如果这对浏览Gregg的博客文章没有帮助,那么发送邮件可能有所帮助。

答案 3 :(得分:1)

TESTCOMPUTER\user1的密码与mydomain\user1的密码是否相同?

您也可以尝试在目标计算机上运行msvsmon.exe而不是远程调试服务。您可以使用“运行方式...”在各种凭据下运行它。使用msvsmon,exe后,您应该可以安装(或重新启用)远程调试器服务,使其在这些凭据下运行。

编辑:

您应该能够使用msvsmon.exe中的“权限”属性页为目标计算机上的域用户设置适当的调试权限:

http://msdn.microsoft.com/en-us/library/ms164722.aspx

答案 4 :(得分:1)

因此,您是开发人员,并且您的某个用户遇到异常,并且您希望在不关闭异常窗口的情况下远程调试它,但它们以不同的用户帐户登录。事实证明,你可以调试他们的应用程序,但这很棘手。

0)您仍然需要在远程应用程序计算机和本地Visual Studio计算机上匹配本地帐户,这意味着将帐户添加到用户的计算机。

1)您需要在/ netonly选项中使用runas。打开命令提示符到msvsmon所在的文件夹,然后键入

runas /user:[user] /netonly msvsmon

这会导致msvsmon仅在访问网络时使用用户的凭据(例如,当msvsmon连接回本地VS计算机时)。如果你使用runas调用它而不使用/ netonly,msvsmon会感到沮丧。

2)您需要通过Remote Debug Monitor的Tools-> Permissions菜单为本地Visual Studio机器添加连接远程应用程序机器的权限。

答案 5 :(得分:0)

所以我没有帐户就无法回复,我只能回复自己的评论,但我的注册帐户与我发布的匿名帐户是分开的,所以这必须是“新答案”。遗憾。

baget - 当我今天早些时候完成这项工作时,我在远程调试监视器PC和Visual Studio PC上创建了一个本地帐户。 RDM不在域上,VS是。两个本地帐户都是管理员,其凭据与我的域帐户相同。从另一个帐户(也是管理员)我使用netonly开关从提升的提示调用runas。您可能需要也可能不需要为您的域名提供用户名,但由于密码应该全部匹配,因此我认为这并不重要。

不要忘记在RDM中调整您的权限,以允许运行VS的用户帐户与Debug权限连接。关于它允许你添加到列表中的人是非常挑剔的,所以如果你不首先创建本地帐户,你会非常沮丧。如果您在不同的用户帐户名下运行RDM,则在尝试连接到远程计算机时必须使用完整的服务器名称;如果你从同一个用户帐户运行RDM和VS,那么你可以只使用计算机名称。