首页 新闻 会员 周边 捐助

关于Oracle.DataAccess未能加载的问题

0
悬赏园豆:20 [已解决问题] 解决于 2018-03-20 23:13

错误:

未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项.试图加载格式不正确的程序。

日志: 此绑定从 default 加载上下文开始。
日志: 正在使用应用程序配置文件: D:\xx\xx\040.xx\xx\xx.xx.Web\web.config
日志: 使用主机配置文件: C:\Users\x'x\Documents\IISExpress\config\aspnet.configxx
日志: 使用 C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config 的计算机配置文件。
日志: 此时没有为引用应用策略(私有、自定义、分部或基于位置的程序集绑定)。
日志: 尝试下载新的 URL file:///C:/Users/xx/AppData/Local/Temp/Temporary ASP.NET Files/vs/a6cf241f/11254f05/Oracle.DataAccess.DLL。
日志: 尝试下载新的 URL file:///C:/Users/xx/AppData/Local/Temp/Temporary ASP.NET Files/vs/a6cf241f/11254f05/Oracle.DataAccess/Oracle.DataAccess.DLL。
日志: 尝试下载新的 URL file:///D:/xx/xx/xx/xx/xx.Web/bin/Oracle.DataAccess.DLL。

未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项.试图加载格式不正确的程序

1.我安装的是64位ODAC.NET,没安装前,Web可正常运行,Winform无法运行
2.winForm程序和Web项目调用同一个类库,这个类库中有读取Oracle的库
4.winForm是可以正常运行的,Web报此错误
5.在bin里面删除Oracle.DataAccess.dll后程序正常运行
6.发布到IIS上程序正常运行,IIS上未启用32位应用程序可正常运行

可考虑的地方:
1.Web项目,用VS启动调试,IIS默认是在32位
2.本机装的Oracle为64为Oracle
3.系统为64位系统
4.trns.org

BOBO~的主页 BOBO~ | 初学一级 | 园豆:184
提问于:2018-03-13 11:09
< >
分享
最佳答案
0

您的web项目开发设置的platform target是x86还是x64

收获园豆:15
yangxu-pro | 菜鸟二级 |园豆:295 | 2018-03-13 11:24

设置的 Any CPU,刚才试了试X86不报错了。之前记得试过也报错的,现在不报错了。那目标平台为什么选X86不是X64呢?我明明装的都是64位的软件

BOBO~ | 园豆:184 (初学一级) | 2018-03-13 14:45

而且,选择X86后,生成的bin文件里面没有Oracle.DataAccess.dll这个文件了

BOBO~ | 园豆:184 (初学一级) | 2018-03-13 14:47
其他回答(2)
0

你这就是缺少引用的DLL,去网上下载一个odp_net_client_dll包,把里面的几个文件放到项目下就可以了

收获园豆:5
新的开始 | 园豆:679 (小虾三级) | 2018-03-13 22:14
0

Oracle.DataAccess 分64位和32位,你如果生成的是web项目any cpu,默认是集成的ODP.NET(默认是64位),则需要开启IIS的支持64位

反之,则是启用32位支持,将程序改为x86编译即可

 

更简单的解决办法是启用新的ODP.NET 托管式DLL,无需再考虑32还是64,直接就能用,就1个DLL

澜紫癜青 | 园豆:313 (菜鸟二级) | 2018-03-21 11:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册