Could not load file or assembly 'Oracle.DataAccess' or one of its dependencies. 试图加载格式不正确的程序。
2015-12-18 11:54
671 查看
未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项。试图加载格式不正确的程序。
上一篇文章说到了DLL引用问题,主要是说的程序中如果使用过了反射,则反射创建对象的dll必须放在web应用程序的bin目录里。今天又遇到了一个类似的问题,mvc3的应用程序,发布到iis上时,报:”未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项。试图加载格式不正确的程序。“。原因很简单,因为我发的时候,我项目中的oracle提供的asp.net访问oralcle数据库的这个 Oracle.DataAccess.dll的本地复制没有设置为true(在项目引用里找到该引用,右键属性里有这个”本地复制").所有发布的时候,它不会自动复制到bin目录里。从而出现了s上述未能加载的错误。好吧!既然这样,那我要么该项目中该引用属性,要么就直接把那个dll复制到发布在服务器上的bin目录里吧。我复制进去后,问题又来了,还是暴未能加载一个引用项。后来一想我iis所在的服务器是64的,而我的 odp.net是装的32.所以对应的Oracle.DataAccess.dll也应该是32位的,这里涉及iis的配置了。
dll有了,32位的,系统是64位的。这个在iis里有一个设置如下如:
先看看项目使用的应用程序池是哪一个:
然后去应用程序池去配置
设置启用32位应用程序 为true
OK搞定。再浏览 一切正常。
这里还记录下MVC3应用程序在iis7中的部署需要注意的地方:
1.添加MVC解析
首先确保ASP.NET MVC3已安装好,然后检查站点的处理程序映射,看是否存在下列映射:
ExtensionlessUrlHandler-Integrated-4.0
ExtensionlessUrlHandler-ISAPI-4.0_32bit
ExtensionlessUrlHandler-ISAPI-4.0_64bit
如果映射存在,请检查应用程序是否分配给了.NET Framework4.0的应用程序池。
如果映射不存在,你可以以管理员运行下面的命令注册:
32位机器:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
64位机器:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i
2.然后检查 bin目录里是否有System.Web.Mvc。dll.没有的话,拷进来,或者是按上面说的方法去重新生成下项目。
3.ASP.NET版本选择4.0.30196;
相关文章推荐
- oracle数据库审计
- ORACLE PL/SQL 触发器
- 甲骨文官网下载jdk历史版本
- 将Java List 传入到Oracle DB的存储过程
- ERROR: ORA-01033: ORACLE initialization or shutdown in progress
- oracle 结构的理解~~~
- oracle ip地址转换为整数 整数转换为ip代码
- 数据库oracle-审计管理
- 全面学习ORACLE Scheduler特性(1)创建jobs
- oracle批量更新操作
- oracle命令导出数据库 exp
- Oracle Workflow工作流添加"打开单据"按钮打开Forms界面
- oracle 赋予、回收账户权限
- oracle分区表运行计划
- 命令检查oracle是否启动,监听是否正常
- Oracle绿色客户端(Instant Client)配置方法
- oracle之spool导出数据
- Linux主机sqlldr工具批量文本数据导入oracle数据库
- Oracle CASE WHEN
- Oracle表分区