BadImageFormatException 0x8007000B 仅在 Windows Server 2012 R2
BadImageFormatException 0x8007000B only on Windows Server 2012 R2
我有一个 ASP.NET 3.5 应用程序,其中包含一个 32 位 DLL。它在 Windows XP、7 和 10 上运行良好(多年来)。我正在添加对 Windows 2012、2012 R2 和 2016 的支持。它在 2016 上运行,但在 2012 R2 上不起作用.
在第一次调用 DLL 时,出现以下错误:
BadImageFormatException: An attempt was made to load a program with an
incorrect format. (Exception from HRESULT: 0x8007000B)
相同的构建和安装脚本用于所有 OS 的测试。每个 OS 都在同一台机器上的虚拟机上,因此所有 OS 的硬件都是相同的。对于每个 OS:
- OS 已完全更新。
- vcredist 9.0 (x86) 作为安装的一部分安装。
- IIS DefaulatAppPool 启用了 32 位应用程序。
我已经尝试了我在这个问题上找到的帖子中的所有建议,但没有任何效果。有什么想法吗?
在任务管理器中仔细检查您的应用程序的 W3WP.exe 进程是 运行 32 位,并且它实际上是默认应用程序池正在尝试加载 DLL。此错误消息几乎肯定意味着 64 位进程正在尝试加载 32 位 DLL。
我有一个 ASP.NET 3.5 应用程序,其中包含一个 32 位 DLL。它在 Windows XP、7 和 10 上运行良好(多年来)。我正在添加对 Windows 2012、2012 R2 和 2016 的支持。它在 2016 上运行,但在 2012 R2 上不起作用.
在第一次调用 DLL 时,出现以下错误:
BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)
相同的构建和安装脚本用于所有 OS 的测试。每个 OS 都在同一台机器上的虚拟机上,因此所有 OS 的硬件都是相同的。对于每个 OS:
- OS 已完全更新。
- vcredist 9.0 (x86) 作为安装的一部分安装。
- IIS DefaulatAppPool 启用了 32 位应用程序。
我已经尝试了我在这个问题上找到的帖子中的所有建议,但没有任何效果。有什么想法吗?
在任务管理器中仔细检查您的应用程序的 W3WP.exe 进程是 运行 32 位,并且它实际上是默认应用程序池正在尝试加载 DLL。此错误消息几乎肯定意味着 64 位进程正在尝试加载 32 位 DLL。