首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加载Oracle库的尝试引发了BadImageFormatException IIS System.Data.OracleClient

加载Oracle库的尝试引发了BadImageFormatException IIS System.Data.OracleClient
EN

Stack Overflow用户
提问于 2017-05-19 08:44:04
回答 2查看 799关注 0票数 0

故事:我的网站运行在System.Data.OraceClient中(由于各种技术原因,我不能更改dll )。现在,我有一个第三方DLL集成到我的网站,这是32位。当我从Visual运行时,一切都运行得很完美,但是当我将它发布到IIS时,它会抛出上述错误。

现在的解决方案是:启用IIS应用程序池中的32位

当启用32位时,第三方DLL将开始工作并且System.Data.Oracle client fails with BadImageFormat exception

禁用IIS应用程序池中的32位.

当32位被禁用时,System.Data.OracleClient将开始工作,第三方DLL将因以下错误而失败。

使用CLSID {xxxxx}检索组件的COM类工厂失败,原因是以下错误: xxxxxx类未注册 -这个类别已登记。这就是当启用32位时它工作的原因。

现在,我的情况只有一个dll将在一次工作。如果在应用程序池中启用了32位,而不尝试将整个应用程序迁移到Oracle,那么是否有办法使我的System.Data.OracleClient运行?

EN

回答 2

Stack Overflow用户

发布于 2017-05-19 09:32:41

我认为实现这一点的唯一方法是将您的web应用程序构建为32位,这样就让它使用32位客户端。那么一切都是32位。确保您的Web应用程序是为 x86构建的。不构建为AnyCpu,因为这将默认为目标平台的x64。

票数 0
EN

Stack Overflow用户

发布于 2017-05-19 09:34:26

System.Data.OracleClient是很长时间以来的已弃用,不应该再使用了。它只适用于x86 (32位),当时微软停止了System.Data.OracleClient 64位Windows的开发,这还不是很普遍。

最好使用来自甲骨文的ODP.NET提供程序,它可以用于x86和x64。

还请检查以下说明:BadImageFormatException。这将在安装了32位Oracle客户端组件的64位模式下运行时发生。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44065344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档