在Windows Server 2012 r2上部署时出现BadImageFormatException

时间:2017-03-13 12:15:43

标签: c# asp.net iis dll windows-server-2012-r2

我正在Windows Server 2012 R2(x64)上部署我的Asp.net应用程序。使用64位dll时,我得到一个运行时BadImageFormatException。当我使用IIS Express或在本地计算机上发布的应用程序运行它时一切正常(应用程序池 - >解决方案名称 - >启用32位应用程序设置为False,解决方案中的所有项目也设置为Platform target x64)。部署正在通过Team City&八达通部署。

解决方案可能是什么?

UPD System.BadImageFormatException:尝试加载格式不正确的程序。 (来自HRESULT的异常:0x8007000B)位于libxl.XmlBook.xlCreateXMLBookC()的xxx.Controllers.xxx.xxxController.LibxlTest()位于C:\ TeamCity \ buildAgent \ work \ aeb63fe0b246a1f3 \ xxx \ xxx \ Controllers \ xxx \ xxx \ xxxController .cs:第597行

在Octopus Tentacle上没有这样的路径C:\ TeamCity \ buildAgent \。

2 个答案:

答案 0 :(得分:1)

最后,它适用于x86(来自libxl文件夹)版本,而解决方案是为x64构建的。可能是tbody的特点。因此,我正在使用x64进行开发,在部署之后,我的部署后脚本会将其更改为x86版本。

答案 1 :(得分:0)

好的,看起来您或您的某个参考文献依赖于libXL

您的异常结果(0x8007000B)肯定是在64位问题上无法加载32位。

libXL是C ++项目,在download zip中有一个bin64文件夹,其副本为libxl.dll,可以在64位模式下运行。

如果你有一个libXL许可副本,最好使用64位dll。

请注意,C:\TeamCity\buildAgent\来自您构建项目的计算机,行号等会保存到您的pdb文件中。