我在 64 位 Windows 7 机器上使用 Visual Studio 2010。
在 Visual Studio 中,我正在创建一个 .NET 4 Visual C# ASP.NET 空 Web 应用程序。
我将 Default.aspx 文件添加到项目中,文本为“Hello World”。
如果我选择“调试”->“开始调试”,它会打开网络浏览器并正确显示文本。
但是,如果我进入 Properties -> Build -> Platform Target 并将其更改为 x64。
当我选择“调试”->“开始调试”时,它会打开一个带有以下错误消息的网络浏览器:
“无法加载文件或程序集‘WebApplication’或其依赖项之一。尝试加载格式不正确的程序。”
“异常详细信息:System.BadImageFormatException:无法加载文件或程序集‘WebApplication’或其依赖项之一。尝试加载格式不正确的程序。”
但是,我可以将它部署到应用程序池上单独的 64 位 Windows 2008 r2 IIS 服务器,并将“启用 32 位应用程序”设置为 False,即使我向项目添加 64 位 .dll,应用程序也能正常运行.
是否无法使用内置的 Visual Studio 开发服务器在 Visual Studio 中调试 64 位应用程序?
在“调试”下拉菜单旁边的工具栏中,我只有一个选项“任何 CPU”:
如有任何帮助,我们将不胜感激。
最佳答案
它与在 32 位应用程序中调试 64 位 dll 有关(用于调试的 IIS 开发版本是 32 位)。您必须在本地以 32 位模式进行调试,然后在部署时以 64 位为目标。
这个问题讨论了 Visual Studio 2010 中使用的 WebDev 服务器的 64 位替代 Is Visual Studio 2010 WebDev WebServer (Cassini) 64-bit compatible? .
Microsoft 对 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
Command-Line:
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
You can configure Visual Studio 2012 to use IIS Express 64-bit by setting the following registry key:
reg add HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\WebProjects /v Use64BitIISExpress /t REG_DWORD /d 1
关于c# - 在 Visual Studio 2010 中调试 x64 Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23318412/