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

时间:2014-04-01 14:45:40

标签: c# visual-studio-2010 remote-debugging visual-studio-debugging managed

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

Error while trying to run project: Unable to start debugging. Logon failure: unknown user name or bad password. See help for more information.

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

当我在WinXP上启用登录审核时,我在事件日志中看到奇怪的记录,常识是:login forbidden for user SYSTEM,但是我用另一个用户名运行VS和远程调试moniton。

有人可以解释我如何击败这个奇怪的错误吗?

Upd:我尝试使用命令以远程用户身份运行VS2010: runas /user:pc_name\user_name path_to_vs_ide 然后传递密码。 IDE成功启动,但是当我选择"附加到进程..."并在限定符字段中写了pc_name,我得到了与上面相同的错误: Logon failure: unknown user name or bad password.

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

Upd2:安装WinXP的新纯副本后问题解决了。

3 个答案:

答案 0 :(得分:2)

假设您有两台计算机,C1和C2。您在两者上创建用户Alex,并且每个Alex副本都具有相同的密码。相同的用户,对吧?

这些不是相同的用户登录。每个都有不同的唯一标识符(UID)。

如果您尝试使用“Alex”作为用户名从C2登录C1,则您使用的用户是来自C2的Alex,而不是来自C1的Alex,这是远程系统用于验证的主体。但远程系统不知道C2中的Alex是谁。

尝试将远程凭据更改为等效的“C1 \ Alex”:远程计算机名称,\和用户名。

答案 1 :(得分: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

您确实需要两个本地用户帐户,一个在主机和远程主机上,具有相同的用户名和密码(使Visual Studio使用与已获得权限的远程帐户(用户名和密码)匹配的本地帐户进行身份验证在msvsmon.exe中调试)

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

现在,您可以尝试使用其他凭据访问资源(如共享)并将其存储,也可以运行Visual Studio作为要调试的用户,该用户对应于远程用户。< / p>

答案 2 :(得分:0)

Alex,您可能需要更改Windows XP计算机上的本地安全策略设置,以下是更多详细信息:http://msdn.microsoft.com/en-us/library/ek2256kk(v=vs.100).aspx