在Visual Studio 2010中调试x64 Web应用程序

时间:2014-04-27 01:37:24

标签: c# asp.net visual-studio-2010 debugging 64-bit

我在64位Windows 7计算机上使用Visual Studio 2010 在Visual Studio中,我正在创建一个.NET 4 Visual C#ASP.NET空Web应用程序 我将一个Default.aspx文件添加到项目中,文本为#34; Hello World"。
如果我选择Debug - >开始调试它会打开一个Web浏览器并正确显示文本。

但是,如果我进入属性 - >构建 - >平台目标并将其更改为x64。 enter image description here

当我选择Debug - >开始调试它会打开一个Web浏览器,并显示以下错误消息:

"无法加载文件或程序集' WebApplication'或其中一个依赖项。尝试加载格式不正确的程序。"

"异常详细信息:System.BadImageFormatException:无法加载文件或程序集' WebApplication'或其中一个依赖项。尝试加载格式不正确的程序。"

但是,我可以将它部署到应用程序池上的单独的64位Windows 2008 r2 IIS服务器上,使用"启用32位应用程序"设置为False,即使我将64位.dll添加到项目中,应用程序也能正常运行。

是否无法使用内置的Visual Studio开发服务器在Visual Studio中调试64位应用程序?

在Debug下拉列表旁边的工具栏中,我只有一个选项"任何CPU":

enter image description here

对此的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:7)

它与在32位应用程序中调试64位dll有关(用于调试的IIS的dev版本是32位)。您必须在本地以32位模式进行调试,然后在部署时以64位为目标。

此问题讨论了Visual Studio 2010 Is Visual Studio 2010 WebDev WebServer (Cassini) 64-bit compatible?中使用的WebDev服务器的64位替换。

对64位Web应用程序How to: Debug 64-Bit Applications使用远程调试并不容易。

您可以尝试的另一件事是安装IIS Express。它将以64位模式运行,可用于调试目的。链接的文章实际上是针对VS2013的,但是将注册表路径从12.0更改为10.0以使其与VS2010一起使用。

对于VS2013:Debugging VS2013 Websites Using 64-bit IIS Express

  

命令行:

reg add HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0\WebProjects 
/v Use64BitIISExpress /t REG_DWORD /d 1

对于VS2012:Allow for IIS Express 64 bit to run from Visual Studio 2012

  

您可以通过设置以下注册表项来配置Visual Studio 2012以使用IIS Express 64位:

reg add HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\WebProjects 
/v Use64BitIISExpress /t REG_DWORD /d 1