我在 32 位 Windows Server 2003 机器上安装了一个 Web 服务。通过在我的机器上共享 x86 调试器 exe,我能够使用 VS 2010 从我的 Windows 7 64 位机器远程调试它。一切正常,直到周末他们决定将服务器机器升级到 64 位。
现在,当我尝试使用 x86 调试器进行远程调试时,它给了我错误:
当我使用 x64 调试器时,它不会引发错误,但不会加载项目的符号,因此我无论如何都无法调试它。
关于为什么会这样的任何想法?我应该做些什么不同的事情?
我在 32 位 Windows Server 2003 机器上安装了一个 Web 服务。通过在我的机器上共享 x86 调试器 exe,我能够使用 VS 2010 从我的 Windows 7 64 位机器远程调试它。一切正常,直到周末他们决定将服务器机器升级到 64 位。
现在,当我尝试使用 x86 调试器进行远程调试时,它给了我错误:
当我使用 x64 调试器时,它不会引发错误,但不会加载项目的符号,因此我无论如何都无法调试它。
关于为什么会这样的任何想法?我应该做些什么不同的事情?
不确定这是否适合您,但您可以
转到 IIS 管理控制台中的应用程序池,右键单击您的应用程序池并选择“设置应用程序池默认值...”。在属性对话框中,将“启用 32 位应用程序”设置为“真”。
这样,您应该能够使用 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
- 在视觉工作室中的客户端上,调试 - 附加到进程 - 传输(远程)限定符(您的服务器)
您必须在服务器和客户端上具有相同版本的可执行文件和符号