博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转发】未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项。试图加载格式不正确的程序。...
阅读量:6831 次
发布时间:2019-06-26

本文共 1149 字,大约阅读时间需要 3 分钟。

 http://www.cnblogs.com/joey0210/archive/2012/09/29/2708420.html
 
上一篇文章说到了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; 

你可能感兴趣的文章
13 jsp include
查看>>
Nginx和PHP-FPM的启动、重启、停止脚本分享(转)
查看>>
如何拷贝CMD命令行文本到粘贴板
查看>>
Oracle数据库—— 存储过程与函数的创建
查看>>
兼容iOS 10 资料整理笔记
查看>>
逻辑回归原理小结
查看>>
php 7.0 安装以及老版本php删除
查看>>
【Machine Learning】决策树案例:基于python的商品购买能力预测系统
查看>>
servlet生成验证码
查看>>
oracle存储过程中使用execute immediate执行sql报ora-01031权限不足的问题
查看>>
Zing 5.0发布,包含原生支持Linux的无停顿垃圾回收器
查看>>
解决Fiddler不能监听Java HttpURLConnection请求的方法
查看>>
串的模式匹配算法---Horspool
查看>>
Python基础07 函数
查看>>
Android学习
查看>>
Windows Phone 7 EKB系列文章发布
查看>>
Jmeter(六)-关联设置
查看>>
Mvc 3 中的分部视图
查看>>
android学习笔记之ProgressDialog的使用
查看>>
hdu 4557 非诚勿扰 vector的应用 原来vector 可以删除指定位置元素 不过消耗大
查看>>