2013-04-23 178 views
8

我在32位Windows Server 2003计算机上安装了Web服务。通过使我的机器上共享x86调试器exe可用,我可以通过VS 2010从我的Windows 7 64位机器远程调试它。一切都很好,直到周末他们决定将服务器机器升级到64位。在x64上进行远程调试Windows Server 2003

现在,当我尝试远程与x86调试器调试它给我的错误:

Remote Debugger

当我使用的x64调试器,它不会抛出一个错误,但它不会加载该项目的符号,所以我无法调试它。

任何想法,为什么这是?我应该做什么不同?

+0

'不加载项目符号<< - 你是否进入了模块窗口(在调试菜单下)来查看特定程序集的符号加载信息?它说什么?此外,Web服务进程是以32位还是64位运行?作为一个实验,您可以尝试(迫使)您的进程以32位运行,以查看远程调试是否适用于此过程。 – wal 2013-05-03 13:08:43

+0

模块窗口甚至不包括项目程序集。它只显示了system32和GAC程序集......我试着在32位和64位上运行这个进程,并且遇到同样的问题。 – anothershrubery 2013-05-03 13:36:36

+0

当运行进程为32位时,我假设你已经过去了你发布的最初的问题(对话框之一)。顺便说一句,你附加到过程后实际发生了什么?确保你打开了输出窗口并检查你的输出设置('Tools - > Options - > Debugging - > Output Window') - 它可能表明它在哪里翻倒。我猜想该机器上的框架版本的符号不能在符号服务器上使用。 – wal 2013-05-03 14:12:06

回答

1

不知道这是一个选择,但你可以

  • 集VS产生一个x86的可执行文件(编译选项,平台目标86)
  • 或者如果你的Web服务运行在IIS ,创建运行的过程x86的

Go to Application Pools in the IIS Management Console, right click your application pool and select "Set Application Pool Defaults...". In the properties dialog, set "Enable 32 Bit Applications" to "True."

这样,你应该能够使用x86的调试器(因为之前的工作)的应用程序池。


显然你可以设置IIS 6到86模式运行:

%SystemDrive%\inetpub\AdminScripts\adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 1 

事后还跑

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

我已经构建了针对x86的服务,但“启用32位应用程序”设置似乎在IIS7及更高版本中。 Windows Server 2003使用IIS6。不幸的是没有喜悦 – anothershrubery 2013-05-09 07:57:53

0

请确保你正在做如下因素

  • - 确保您拥有在UPTODATE符号与你的服务器

  • -run的msvsmon.exe

  • 64位版本-on视觉工作室您的客户端,调试上可执行 - 重视过程 - 运输(远程)预选赛(您服务器)

  • - 选择过程中,打附加

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

相关问题