.NET 作为来自另一个域的另一个用户进行远程调试?
Posted
技术标签:
【中文标题】.NET 作为来自另一个域的另一个用户进行远程调试?【英文标题】:.NET remote debugging as another user from another domain? 【发布时间】:2011-12-15 20:19:06 【问题描述】:我正在尝试通过 Visual Studio 2010 进行远程调试。但我无法告诉调试器在远程计算机上使用另一个(远程)帐户。 (不要使用我的帐户。)
有什么提示吗?
更新:我的计算机上没有远程帐户(它在另一个域中)。所以我不能使用runas
。
【问题讨论】:
右键运行是否无效? 您是否考虑以其他用户身份通过runas
运行VS 2010?
感谢提示,请参阅我的更新。
只是检查-您是否在调试监视器中正确配置了远程计算机上的权限(msdn.microsoft.com/en-us/library/ms164722.aspx)...我打算回答“使用未经身份验证的,但它仅适用于本机代码) .
是的,权限没问题。
【参考方案1】:
为此奋斗了很长时间。
检查一下
-
两台计算机都在同一个域中,或者 VS 远程调试器和客户端 VS 以相同的用户身份运行,并且具有相同的密码。您的用户可以位于不同的域或工作组中,但登录名必须相同
机器之间需要双向无限制直接连接。
【讨论】:
广告 1:我的问题是是否可以使用来自另一个域的另一个用户? (也许使用了一些没有充分记录的解决方法。) 这不是必需的。只需在两台机器上创建拼写相同的用户名。 这需要在远程服务器上更改本地密码或降低密码策略。但也许有办法使用其他用户... 不幸的是我找不到另一种方法来做到这一点:(如果这是一个(预)生产服务器,即使远程服务器无法连接回来,您也可以要求远程创建一个调试器用户到您的 VS 机器上,您注定要失败。唯一可行的解决方案是广泛的日志记录和正确利用日志级别,而不会减慢生产代码的速度。【参考方案2】:根据我的经验,远程调试设置起来很痛苦!这是我的做法(类似于您已经收到的回复):
-
在远程框上,使用与您的域帐户相同的用户名和密码创建一个本地管理员用户。确保此本地用户是调试组的成员。
在本地机器上,共享 VS 中的远程调试文件夹(...\common7\ide\remote debugger)
在远程机器上,在本地机器上创建的共享中创建 msvsmon.exe 文件的快捷方式。
在远程机器上,运行快捷方式以便远程调试器启动。这可以保证您运行的是正确的远程调试版本。
从 Visual Studio 尝试使用 User@machine_name 连接到远程计算机,其中 User 是远程机器上登录用户的用户名(不是您创建的本地管理员帐户)。
您应该会看到远程调试器注册了连接。
如果这不起作用,您可能会遇到进一步的网络或权限问题。
希望有帮助!
【讨论】:
【参考方案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 远程调试器中的服务器名称
在远程计算机上监控
你可以通过ipconfig
cmd
知道你服务器的ip地址
如果您需要有关跨域调试的更多详细说明,请查看此link。
【讨论】:
【参考方案4】:这是在黑暗中拍摄的……假设您拥有 *** 访问权限。而且我仍然不确定它会起作用。不过也许值得一试
-
连接 ***
将域帐户添加为远程机器上的本地用户
查看是否可以右键单击以该帐户运行。
【讨论】:
【参考方案5】:在远程机器上运行远程调试器监视器后,配置调试权限以允许所有人访问。当您从 Visual Studio 连接到远程计算机时,请使用以下格式作为限定符:
remote_domain\remote_user@remote_machine
远程用户是运行远程调试器的用户。 记住远程机器上的防火墙。
【讨论】:
【参考方案6】:当您在双方都有本地帐户、拼写相同且密码相同时,我已经看到它可以工作。不够一致,我会依赖它。
您是否尝试过改用windbg?刚开始使用有点痛苦,但它可以完成工作。
【讨论】:
我正在调试 .NET 应用程序。 (我认为windbg
不支持。)
它确实支持.net!请参阅msdn.microsoft.com/en-us/library/bb190764.aspx 了解更多信息。【参考方案7】:
我还有一些事情要尝试,因为我最终可以进行远程调试,但这很棘手:
注意运行 Visual Studio 的用户,默认情况下我以管理员身份运行它,我必须以本地域用户身份运行才能连接 在这个阶段,我还不能连接到另一个域,但作为中间步骤,我输入了我域上服务器的限定符,并且能够看到这些进程 现在我将限定符更改为另一个域的 IP 地址(不需要输入 4020 端口号)并点击刷新按钮,瞧,我被提示输入另一个域上的帐户凭据 这很有效,我可以看到要连接的进程 如果没有在我的域中输入服务器的先前步骤,我无法获得登录屏幕【讨论】:
以上是关于.NET 作为来自另一个域的另一个用户进行远程调试?的主要内容,如果未能解决你的问题,请参考以下文章
使用除 oracle 之外的另一个 linux 用户连接到 sqlplus
如何在 ASP.NET Core 3.1 的另一个应用程序中包含用户管理器
.net C# 将值作为查询字符串发布到带有按钮的另一个页面
前端 ASP.NET MVC4 作为一个项目,ASP.NET Web API 作为同一解决方案中的另一个项目 - 如何从前端调用 WebAPI?