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

2019-01-03 03:10发布

错误:

未能加载文件或程序集“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

标签: oracle
3条回答
劫难
2楼-- · 2019-01-03 03:36

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

查看更多
Summer. ? 凉城
3楼-- · 2019-01-03 03:40

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

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

 

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

查看更多
萌系小妹纸
4楼-- · 2019-01-03 03:41

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

查看更多
登录 后发表回答