2013-08-02 72 views
7

如何从具有Visual Studio的其他计算机远程调试托管应用程序。这是我曾尝试:远程调试托管应用程序

  1. 复制其自带的Visual Studio的一部分到远程计算机并运行msvsmon.exe(64位版本两台机器都是64位)的远程调试文件夹。
  2. 在两台机器上使用相同的Windows登录帐户。
  3. 然后我启动visual studio并使用附加过程。在传输中,我选择“默认”,并在限定符中给出msvsmon.exe正在运行的机器的主机名。
  4. 然后我按下刷新按钮来查看该机器上的进程列表。我可以看到,另一方面它说“用户xyz已连接”。然而,刷新失败,我得到以下错误: Error screen

我在做什么错在这里?我想用VS2008 Pro和OS在两个系统上都是Windows Server 2008 R2。

注意:我可以调试使用远程传输的非托管应用程序,没有任何问题。

+2

使用[MSDN文章(http://msdn.microsoft.com/en-us/library/bt727f1t% 28V = VS.100%29.aspx)。防火墙是通常的挂断,你没有提到任何关于它的事情。 –

+0

一定还要在远程计算机上运行msvsmon.exe *作为管理员* –

回答

2

开始使用Visual Studio 2012可以使用远程(无身份验证)运输调试托管代码(VS以前只允许调试远程模式的本地代码)。

3

我也在这上面花了很多时间。 我发现使它工作100%的唯一方法是使用相同的域。使用VS2012,连接时不需要在同一个域中就可以轻松完成。

但对于2008年,这是为我工作(A = VS侧,B =机无VS)

1)所述的机器A(其中VS是)和B必须在相同的域中。 您还需要下载并安装VS远程调试器监视器B

2)您需要在B端启动VS远程调试器监视器,以允许传入连接。当您第一次启动时,它会配置防火墙以打开端口。 它还会显示它正在侦听的地址,即DOMAIN \ User @ hostname_B

3)在A上运行VS域管理员帐户,您将能够远程调试。要在调试中连接到B,请使用显示器在步骤2中显示的地址

希望它能帮助您!

+0

两台计算机都位于不同的域中(同样在步骤3中,当您在步骤2中使用地址时,表示我必须在“附加到”进程中输入该地址对话框? – Asha

+0

是的,在附加进程中,你应该输入远程调试监视器显示的确切地址。如果你处于不同的域,我尝试过并且永远不会成功,所以我创建了一个远程调试的真正痛苦虚拟开发计算机并将其加入到域中,以便我可以使用此虚拟机进行调试。 – Fabske

+0

您是否阅读过此内容:http://msdn.microsoft.com/en-us/library/9y5b4b4f(v=vs.90).aspx? – Fabske

5

即使您的机器是64位,请确保您正在运行的应用程序是64位。例如,如果您正在远程计算机上调试32位应用程序,则需要运行msvsmon.exe的32位版本。

这可能不是答案,但需要检查确认。

在2017年

更新正如我一直在使用更多的在过去的几年中远程调试,我注意到,我通常要工作,通过几个问题。

  1. 确保在每台机器上使用相同版本的msvsmon。
  2. 确保验证配置正确(尝试并且无需身份验证首先工作,然后在需要时再打开它)
  3. 确保当您附加到进程时,您具有正确的“附加到”设置(即托管.NET版本,本机代码等)
  4. 确保msvsmon正在作为管理员或作为同一用户身份要调试
+0

我仍然无法设法尝试此操作,我会尽快尝试并更新它是否可以在我获得一些时间后立即生效 – Asha

+0

好的。只是为了确保您运行的是与x86兼容的程序吗?让我知道怎么了。 – matrixugly

2

没有直接回答到OP中的应用,但可能会有所帮助,并且多次帮助我摆脱类似的情况。

我会建议考虑安装WinDBG(或类似),确保你有正确的符号\代码设置使用它来调试。 WinDBG的学习曲线非常陡峭,但我相信这是值得的,即使在非常高的水平。它非常轻便,这意味着它在原始文章+也可用于生产环境中很有用,等等,安装像VS这样的东西通常不是一种选择。

这可能不是一个选项,如果你在急于求成,但从长远来看这是值得的。

克里斯

PS:有一些诉网络上很好的课程,尤其是像Pluralsight(我没有关系,只是一个快乐的客户)网站

1

我已经花了很多。做这项工作的时间。但是我成功了,现在可以完全调试我的托管应用程序。我遵循以下任务列表使其工作:

- 将目标PC添加到域,并使用您在Visual Studio中使用的PC上的相同帐户登录。

- 运行正确的Visual Studio远程调试器(msvsmon.exe),我使用2010版本。

- 关闭目标PC上的防火墙。

- 在开发计算机时为devenv.exe(Visual Studio exe)添加Windows防火墙异常。

- 如果您将OracleVM用于虚拟PC,则网络适配器不能处于NAT模式(我使用桥接适配器)。

- 使用的调试地址是:DOMAIN \ USER @ PCNAME(例如MyGreatDomain \ Myself @ DEBUGPC)。我需要使用“选择”按钮来编辑“附加到:” - 我需要托管(v4.0)代码,本地代码。

-pdb文件必须位于我用来运行我的exe的同一个目录中。我用我的exe和pdb直接将目录映射到目标计算机上。

- 在Visual Studio中,我还必须转至工具 - >选项,展开调试 - >常规。并取消选中启用只是我的代码(仅限管理)。

它非常复杂,使其工作,但它节省了后来这么多的时间...