【问题标题】:Debugging x64 Web Application in Visual Studio 2010在 Visual Studio 2010 中调试 x64 Web 应用程序
【发布时间】:2014-06-12 15:51:49
【问题描述】:

我在 64 位 Windows 7 机器上使用 Visual Studio 2010。
在 Visual Studio 中,我正在创建一个 .NET 4 Visual C# ASP.NET 空 Web 应用程序。
我将 Default.aspx 文件添加到项目中,其中包含文本“Hello World”。
如果我选择 Debug -> Start Debugging 它会打开一个 Web 浏览器并正确显示文本。

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

当我选择 Debug -> Start Debugging 时,它会打开一个带有以下错误消息的 Web 浏览器:

“无法加载文件或程序集 'WebApplication' 或其依赖项之一。试图加载格式不正确的程序。”

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

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

难道不能使用内置的 Visual Studio 开发服务器在 Visual Studio 中调试 64 位应用程序吗?

在“调试”下拉菜单旁边的工具栏中,我只有一个选项“任何 CPU”:

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

【问题讨论】:

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


    【解决方案1】:

    这与在 32 位应用程序中调试 64 位 dll 有关(用于调试的 IIS 开发版本是 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

    命令行:

    注册添加 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0\WebProjects
    /v 使用64BitIISExpress /t REG_DWORD /d 1

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

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

    注册添加 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\WebProjects
    /v 使用64BitIISExpress /t REG_DWORD /d 1

    【讨论】:

    • 所以我需要删除所有 64 位 .dll 依赖项并将它们替换为 32 位版本以进行调试,然后在需要发布到 64 位网络服务器时执行相反的操作?这仅适用于 Visual Studio 2010,还是在较新版本的 Visual Studio 中有 64 位调试选项?
    • 我对答案进行了一些重要更新,其中包括有关如何使用 64 位进行调试的几种不同方法的链接。
    • 非常感谢您提供的链接。看起来您也可以在 Visual Studio 2013 中从应用程序将 IIS Express 设置为 64 位:在 Visual Studio 2013 中有一个 now 选项。选项 |项目和解决方案 |网站项目 |使用 64 位版本的 IIS Express...
    猜你喜欢
    • 2011-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-23
    • 1970-01-01
    • 2016-04-11
    • 1970-01-01
    相关资源
    最近更新 更多