【问题标题】:.NET remote debugging as another user from another domain?.NET 作为来自另一个域的另一个用户进行远程调试?
【发布时间】:2011-12-15 20:19:06
【问题描述】:

我正在尝试通过 Visual Studio 2010 进行远程调试。但我无法告诉调试器在远程计算机上使用另一个(远程)帐户。 (不要使用我的帐户。)

有什么提示吗?

更新:我的计算机上没有远程帐户(它在另一个域中)。所以我不能使用runas

【问题讨论】:

  • 右键运行是否无效?
  • 您是否考虑以其他用户身份通过​​runas 运行VS 2010?
  • 感谢提示,请参阅我的更新。
  • 只是检查-您是否在调试监视器中正确配置了远程计算机上的权限(msdn.microsoft.com/en-us/library/ms164722.aspx)...我打算回答“使用未经身份验证的,但它仅适用于本机代码) .
  • 是的,权限没问题。

标签: c# .net visual-studio-2010 debugging remote-debugging


【解决方案1】:

为此奋斗了很长时间。

检查一下

  1. 两台计算机都在同一个域中,或者 VS 远程调试器和客户端 VS 以相同的用户身份运行,并且具有相同的密码。您的用户可以位于不同的域或工作组中,但登录名必须相同
  2. 机器之间需要双向无限制直接连接。

【讨论】:

  • 广告 1:我的问题是是否可以使用来自另一个域的另一个用户? (也许使用了一些没有充分记录的解决方法。)
  • 这不是必需的。只需在两台机器上创建拼写相同的用户名。
  • 这需要在远程服务器上更改本地密码或降低密码策略。但也许有办法使用其他用户...
  • 不幸的是我找不到另一种方法来做到这一点:(如果这是一个(预)生产服务器,即使远程服务器无法连接回来,您也可以要求远程创建一个调试器用户到您的 VS 机器上,您注定要失败。唯一可行的解​​决方案是广泛的日志记录和正确利用日志级别,而不会减慢生产代码的速度。
【解决方案2】:

根据我的经验,远程调试设置起来很痛苦!这是我的做法(类似于您已经收到的回复):

  1. 在远程框上,使用与您的域帐户相同的用户名和密码创建一个本地管理员用户。确保此本地用户是调试组的成员。
  2. 在本地机器上,共享 VS 中的远程调试文件夹(...\common7\ide\remote debugger)
  3. 在远程机器上,在本地机器上创建的共享中创建 msvsmon.exe 文件的快捷方式。
  4. 在远程机器上,运行快捷方式以便远程调试器启动。这可以保证您运行的是正确的远程调试版本。
  5. 从 Visual Studio 尝试使用 User@machine_name 连接到远程计算机,其中 User 是远程机器上登录用户的用户名(不是您创建的本地管理员帐户)。
  6. 您应该会看到远程调试器注册了连接。

如果这不起作用,您可能会遇到进一步的网络或权限问题。

希望有帮助!

【讨论】:

    【解决方案3】:

    我已经多次以另一个用户的身份跨域调试远程计算机上的进程。

    首先,您需要学习如何在同一个域中调试远程进程。 @KyleMit 的 answers 完全帮助我做到了这一点。

    但是,对于跨域调试,您还需要在本地计算机上编辑C:\Windows\System32\drivers\etc\hosts 文件。

    只需像这样添加远程计算机的IP地址:

    172.172.172.172     SRV-TEST-ADRESS
    

    地点:

    • 172.172.172.172 - 你的远程服务器的 IP 地址
    • SRV-TEST-ADRESS - Visual Studio 远程调试器中的服务器名称 在远程计算机上监控

    你可以通过ipconfigcmd知道你服务器的ip地址

    如果您需要有关跨域调试的更多详细说明,请查看此link

    【讨论】:

      【解决方案4】:

      这是在黑暗中拍摄的……假设您拥有 VPN 访问权限。而且我仍然不确定它会起作用。不过也许值得一试

      1. 连接 VPN
      2. 将域帐户添加为远程机器上的本地用户
      3. 查看是否可以右键单击以该帐户运行。

      【讨论】:

        【解决方案5】:

        在远程机器上运行远程调试器监视器后,配置调试权限以允许所有人访问。当您从 Visual Studio 连接到远程计算机时,请使用以下格式作为限定符:

        remote_domain\remote_user@remote_machine

        远程用户是运行远程调试器的用户。 记住远程机器上的防火墙。

        【讨论】:

          【解决方案6】:

          当您在双方都有本地帐户、拼写相同且密码相同时,我已经看到它可以工作。不够一致,我会依赖它。

          您是否尝试过改用windbg?刚开始使用有点痛苦,但它可以完成工作。

          【讨论】:

          【解决方案7】:

          我还有一些事情要尝试,因为我最终可以进行远程调试,但这很棘手:

          • 注意运行 Visual Studio 的用户,默认情况下我以管理员身份运行它,我必须以本地域用户身份运行才能连接
          • 在这个阶段,我还不能连接到另一个域,但作为中间步骤,我输入了我域上服务器的限定符,并且能够看到这些进程
          • 现在我将限定符更改为另一个域的 IP 地址(不需要输入 4020 端口号)并点击刷新按钮,瞧,我被提示输入另一个域上的帐户凭据
          • 这很有效,我可以看到要连接的进程
          • 如果没有在我的域中输入服务器的先前步骤,我无法获得登录屏幕

          【讨论】:

            猜你喜欢
            • 2011-08-10
            • 1970-01-01
            • 2015-06-25
            • 1970-01-01
            • 2012-08-20
            • 1970-01-01
            • 1970-01-01
            • 2011-11-16
            • 2017-03-25
            相关资源
            最近更新 更多