我尝试远程调试C#应用程序(WinXP(32位)下的远程PC,Win7(64位)下的VS运行,我收到一条错误消息:
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和远程调试监控。
有人可以解释我如何击败这个奇怪的错误吗?
更新:我尝试使用命令以远程用户身份运行VS2010: runas /user:pc_nameuser_name path_to_vs_ide
然后传递密码。IDE已成功启动,但是当我选择"附加到进程..."并在限定符字段中写了pc_name
,我得到了与上面相同的错误: Logon failure: unknown user name or bad password.
所以我的问题还没有实现。如何远程调试C#应用程序?
Upd2:安装新的 WinXP 纯副本后问题已解决。
假设您有两台计算机,C1 和 C2。 您在两者上创建一个用户 Alex,并且 Alex 的每个副本都具有相同的密码。 同一个用户,对吧?
这些不是同一个用户登录。 每个都有不同的唯一标识符 (UID)。
如果您尝试使用"Alex"作为用户名从 C2 登录到 C1,则您使用的用户是来自 C2 的 Alex,而不是来自 C1 的 Alex,后者是远程系统将用于进行身份验证的主体。 但是远程系统不知道C2中的Alex是谁。
尝试将远程凭据更改为等效的"C1\Alex":远程计算机名称、和用户名。
您可以在此处查看有关如何设置远程工具的详细信息: 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 将选取这些缓存的凭据,并尝试将其用作远程调试的身份验证。因此,您需要清除这些凭据(控制用户密码2、高级选项卡、管理密码、删除该远程主机的凭据)
现在,你可以尝试使用不同的凭据访问资源(如共享)并存储它,也可以以与远程端的用户对应的用户身份运行 Visual Studio。
您可能需要更改Windows XP计算机上的本地安全策略设置,以下是更多详细信息:http://msdn.microsoft.com/en-us/library/ek2256kk(v=vs.100).aspx