未处理System.BadImageFormatException -- IIS处理使用c++编写的dll出错的处理方法
---恢复内容开始---
今天迁移早前的一个web程序的时候遇到如下的错误。
未处理System.BadImageFormatException
HResult=-2147024885
Message=试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)"
经过检查, 。netframwork,dll, 甚至文件位置都相同。 唯一的错误只可能出在他使用的一个c++写的dll上。
经过排查,原来那个c++的dll是32位, 而新的web程序池默认只使用64位。
解决方案:
1# IIS端
设置web程序的程序池 -- 高级设置 -- 启动32位应用程序
这样IIS就可以识别c++的dll了
2#, 因为本次是执行迁移, 在开发的时候, 需要设置将所有应用的dll都要编译位32位应用程序
且行且记录