【问题标题】:How to remote debug when user accounts do not match?用户帐号不匹配时如何远程调试?
【发布时间】:2011-06-13 07:12:55
【问题描述】:
在以下情况下如何配置 Visual Studio 远程调试:
- 我的开发人员机器是 AD 域的成员,我的用户名是“DevelopersName”。
- “远程”机器位于同一以太网网段,但不属于域。
- “远程”计算机必须运行“远程用户名”下的软件。
我能找到的大多数文档都表明您需要将两台机器都放在同一个域中并使用相同的用户名。这是不可能的。
我可以将我的用户名添加到“remote”,但该软件仍需要在“RemoteUserName”下运行。
如果有帮助,我可以将第二张网卡添加到我的开发人员机器并直接连接“远程”机器。
使用 VS2008,但将很快迁移到 VS2010。
谢谢。
【问题讨论】:
标签:
visual-studio
visual-studio-2008
visual-studio-2010
debugging
remote-debugging
【解决方案1】:
抱歉,我在过去 10 个小时里一直在尝试调试您的确切问题。我的发现并不好。
您需要同步您的帐户,尤其是当您使用远程应用程序连接到 SOA 环境中的其他系统时,例如:Sharepoint、AD。
如果您在本地计算机上创建一个与远程计算机同名的帐户(让我们这样做,而不是使用域帐户),那么您可以在某种程度上进行远程调试。
然后,您需要确保远程服务正在此帐户下运行,并且它是管理员组的成员。我的意思是按住控制,然后右键单击运行为 - 使用远程调试器,然后选择用户(如果远程服务器以所需用户身份登录则不需要)。
运行向导它将打开所需的端口,使用身份验证,因为非身份验证不会调试托管代码。断点永远不会遇到,对此您无能为力。
在您的本地开发机器上,注销您的域帐户,然后使用与运行远程服务的服务器上的帐户匹配的名称登录本地帐户。
现在您可以更改远程调试。如果您不能执行上述任何操作,抱歉没有解决方法,它完全取决于用户帐户并拥有正确的权限。
【解决方案2】:
如果您不想创建本地帐户,请尝试使用以下命令通过命令提示符启动我们的调试器:
runas /user:[user@machinename] /netonly [debugger.exe]
例如:
runas /user:john@mypc123 /netonly devenv.exe
【解决方案3】:
我假设它是您正在谈论的托管调试(对于本机调试,有一个没有身份验证的远程调试解决方案)。在这种情况下,我建议您使用本地用户在您的机器上启动调试器。如果此本地用户的名称和密码与“RemoteUserName”的名称和密码匹配,它应该可以工作。
(请注意,这并不妨碍您使用 AD 帐户登录工作站,您只需设置另一个帐户并使用 runas 启动 Visual Studio。)