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:

我已经尝试了我在这个问题上找到的帖子中的所有建议,但没有任何效果。有什么想法吗?

在任务管理器中仔细检查您的应用程序的 W3WP.exe 进程是 运行 32 位,并且它实际上是默认应用程序池正在尝试加载 DLL。此错误消息几乎肯定意味着 64 位进程正在尝试加载 32 位 DLL。