Visual studio 2010 x64 Windows Server 2003上的远程调试

Visual studio 2010 x64 Windows Server 2003上的远程调试,visual-studio-2010,remote-debugging,Visual Studio 2010,Remote Debugging,我在32位WindowsServer2003机器上安装了一个web服务。我能够通过VS2010从我的Windows 7 64位计算机上远程调试它,方法是在我的计算机上的共享中提供x86调试器exe。一切正常,直到周末他们决定将服务器升级到64位 现在,当我尝试使用x86调试器进行远程调试时,会出现以下错误: 当我使用x64调试器时,它不会抛出错误,但不会加载项目的符号,因此我无法对其进行调试 你知道为什么会这样吗?我该怎么做呢?不确定这是否适合您,但您可以 设置VS以生成x86可执行文件(构

我在32位WindowsServer2003机器上安装了一个web服务。我能够通过VS2010从我的Windows 7 64位计算机上远程调试它,方法是在我的计算机上的共享中提供x86调试器exe。一切正常,直到周末他们决定将服务器升级到64位

现在,当我尝试使用x86调试器进行远程调试时,会出现以下错误:

当我使用x64调试器时,它不会抛出错误,但不会加载项目的符号,因此我无法对其进行调试


你知道为什么会这样吗?我该怎么做呢?

不确定这是否适合您,但您可以

  • 设置VS以生成x86可执行文件(构建选项、平台目标x86)
  • 或者,如果您的web服务正在IIS中运行,请创建作为x86进程运行的应用程序池
转到IIS管理控制台中的应用程序池,右键单击 应用程序池并选择“设置应用程序池默认值…”。在 属性对话框中,将“启用32位应用程序”设置为“True”

这样,您应该能够使用x86调试器(因为它以前可以工作)


显然,您可以使用以下选项将IIS 6设置为在x86模式下运行:

%SystemDrive%\inetpub\AdminScripts\adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 1
后来也跑了

%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -i

请确保您正在执行以下操作

  • -确保您在服务器上具有最新的可执行符号

  • -运行64位版本的msvsmon.exe

  • -在visual Studio中的客户端上,调试-附加到进程-传输(远程)限定符(服务器)

  • -选择流程并点击attach

服务器和客户端上必须有相同版本的可执行文件和符号

不加载项目的符号
模块窗口甚至不包含项目程序集。它只是显示了system32和GAC程序集……我尝试了以32位和64位运行该进程,但我遇到了相同的问题。当以32位运行该进程时,我假设您已经解决了发布的初始问题(对话框)。顺便说一句,连接到进程后实际会发生什么?确保“输出”窗口已打开,并检查输出设置(
工具->选项->调试->输出窗口
)-它可能会指示其掉落的位置。我猜那台机器上的框架版本的符号在符号服务器上是不可用的。另外,将运行32位2003 windows的机器更新为64位2003 windows也很奇怪??检查日历上的当前日期:)哦,我知道更新有多奇怪。我甚至不知道他们为什么需要它,但他们做到了,我必须处理它。“输出”窗口不显示任何内容:/我已经构建了以x86为目标的服务,但是“启用32位应用程序”设置似乎在IIS7和更高版本中。WindowsServer2003使用IIS6。不幸的是,没有快乐。