VS2010远程调试C#应用

Posted

技术标签:

【中文标题】VS2010远程调试C#应用【英文标题】:Remote debugging C# application in VS2010 【发布时间】:2014-05-12 10:18:34 【问题描述】:

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

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

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

谁能解释我如何解决这个奇怪的错误?

更新:我尝试使用以下命令以远程用户身份运行 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 纯副本后问题解决。

【问题讨论】:

【参考方案1】:

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

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

如果您尝试使用“Alex”作为用户名从 C2 登录到 C1,则您使用的用户是来自 C2 的 Alex,而不是来自 C1 的 Alex,后者是远程系统将用来进行身份验证的主体.但是远程系统不知道 C2 的 Alex 是谁。

尝试将您的远程凭据更改为相当于“C1\Alex”:远程计算机名称、\ 和用户名。

【讨论】:

谢谢你的回答,@Amy。您能告诉我更改凭据需要执行哪些操作吗? 就像我说的,在用户名前面加上远程系统的名称。 我应该在哪里执行此操作,即在哪个程序/窗口的哪个字段中?【参考方案2】:

您可以在此处查看有关如何设置远程工具的更多信息:http://msdn.microsoft.com/en-us/library/bt727f1t.aspxGregg 的博客对帐户要求非常有用: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 作为您要调试的用户,该用户对应于远程端的用户。

【讨论】:

指定的机器凭据未保存。我删除了所有保存的内容,但情况并没有改变。错误仍然存​​在。可能还有其他想法吗? 你能告诉我更多细节吗?您是在两台机器上都使用 VS2010,还是一台有 VS2010,一台有 VS 2010 的远程调试器? VS2010 在 Win7 上作为 IDE,在 WinXP 上作为 VS2010 的远程调试器。【参考方案3】:

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

【讨论】:

我之前看过这个链接并做了所有这些推荐。尝试将远程机器作为真正的 PC 并在 VMWare 播放器中使用。但没有积极的结果。

以上是关于VS2010远程调试C#应用的主要内容,如果未能解决你的问题,请参考以下文章

从 VS2010 调试远程 IIS 服务器上运行的 ASP.NET 应用程序

如何使用VS2010远程调试?

vs2010远程调试断点无效问题

远程调试脚本代码VS2010

C#和uni-app手机应用进行远程调试

VS2010 中的远程调试 - 访问被拒绝