在VS2010中远程调试C#应用程序

4

我尝试远程调试C#应用程序(远程PC在WinXP(32位)下运行,VS在Win7(64位)下运行)时,出现错误消息:

尝试运行项目时出错:无法启动调试。 登录失败:未知用户名或密码错误。有关更多信息,请参阅帮助。

在两台机器上,我都设置了相同名称/密码的用户帐户,并且这两台机器位于同一工作组中的局域网中。

当我在WinXP上启用登录审核时,我在事件日志中看到了一个奇怪的记录,其常见意义是:用户SYSTEM的登录被禁止,但我通过另一个用户名运行VS和远程调试监视器。

有人能解释一下如何解决这个奇怪的错误吗?

更新:我尝试以远程用户身份运行VS2010,并使用以下命令:runas /user:pc_name\user_name path_to_vs_ide,然后输入密码。 IDE成功启动,但当我选择“附加到进程...”并在限定符字段中写入pc_name时,我遇到了与上述相同的错误: 登录失败:未知用户名或密码错误。

因此,我的问题仍然存在。如何远程调试C#应用程序?

更新2:在安装了新的纯净副本WinXP后,问题已得到解决。

3个回答

2
假设您有两台计算机,C1和C2。您在两台计算机上创建了一个名为Alex的用户,并且每个Alex副本都具有相同的密码。这是同一个用户,对吗?
这些并不是相同的用户登录。每个用户都有不同的唯一标识符(UID)。
如果您尝试使用“Alex”作为用户名从C2登录C1,则使用的用户是来自C2的Alex,而不是C1的Alex,这是远程系统用于身份验证的主体。但是远程系统不知道来自C2的Alex是谁。
尝试将远程凭据更改为“C1 \ Alex”的等效凭据:远程计算机名称、\符号和用户名。

谢谢您的回答,@Amy。您能告诉我更改凭据需要执行哪些操作吗? - αλεχολυτ
就像我说的那样,在用户名之前加上远程系统的名称。 - user47589
我应该在哪里做这个,即在哪个程序/窗口的哪个字段中? - αλεχολυτ

1

您可以在此处查看有关如何设置远程工具的更多信息:http://msdn.microsoft.com/en-us/library/bt727f1t.aspx。Gregg的博客对帐户要求非常有用:http://blogs.msdn.com/b/greggm/archive/2008/05/15/visual-studio-remote-debugger-service-user-account-requirements.aspx

您确实需要两个本地用户帐户,一个在主机上,另一个在远程主机上,用户名和密码相同(以便使用本地帐户进行身份验证,该帐户与已被授予权限以在msvsmon.exe中进行调试的远程帐户(用户名和密码)匹配)

Windows缓存凭据-如果您访问了资源并选中了“记住我”,则Windows会缓存到该资源的凭据。 如果您曾经尝试使用当前登录到本地计算机的用户附加到进程,则Visual Studio将获取这些缓存的凭据,并尝试将其用作远程调试的身份验证。 因此,您需要清除这些凭据(控制userpasswords2,高级选项卡,管理凭据,删除该远程主机的凭据)

现在你可以尝试使用不同的凭据访问资源(如共享)并将其存储,或者以对应于远程端用户的调试用户身份运行Visual Studio。

指定的机器凭据未保存。我已删除所有已保存的内容,但情况并没有改变。错误仍然存在。也许还有其他想法? - αλεχολυτ
你能给我更多的详细信息吗?你在两台计算机上都使用VS2010,还是一台计算机有VS2010而另一台计算机有VS 2010的远程调试器? - Maria
在Win7上使用VS2010作为IDE,在WinXP上使用远程调试器来调试VS2010。 - αλεχολυτ

0

我之前看过这个链接,并尝试了所有的建议,包括在虚拟机和远程机器中使用真实PC的方式,但都没有取得积极的结果。 - αλεχολυτ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接