使用 Grove.dll 依赖的接口项目发布到IIS部署上线时,运行报错:System.BadImageFormatException,详见下图:
根据报错信息和堆栈跟踪分析,这是一个典型的 程序集位元不匹配(32位 vs 64位) 导致的 System.BadImageFormatException,因此,需要检查Grove的编译平台:
问题所在:Grove 程序集(或其依赖项)的编译平台架构(x86/x64)与 IIS 应用程序池的架构不一致。 例如:Grove 是 32位(x86) 程序集,但应用池运行在 64位(x64) 模式
打开 IIS 管理器 → 选择应用程序池 → 右键点击你使用的应用池 → 高级设置。
找到 启用 32 位应用程序 选项,将其设为 True。
验证:修改后 重启应用池(右键 → 回收)。
重启服务后效果:
本文作者:张京
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!