Code Bye

未能加载文件或程序集“Oracle.DataAccess, Version=2.112.1.0

服务器环境:IIS服务器
未能加载文件或程序集“Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342”或它的某一个依赖项。试图加载格式不正确的程序
Could not load file or assembly “Oracle.DataAccess, Version=2.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342″ or one of its dependencies. The located assembly”s manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
配置了
<runtime>
<assemblyBinding xmlns=”urn:schemas-microsoft-com:asm.v1″>
<dependentAssembly>
<assemblyIdentity name=”Oracle.DataAccess”
publicKeyToken=”89B483F429C47342″
culture=”neutral” />
<bindingRedirect
oldVersion=”2.112.1.2″
newVersion=”2.112.1.0″/>
</dependentAssembly>
</assemblyBinding>
</runtime>
还是有这个错误,请大家帮帮忙啊。
解决方案

5

5

你的在服务器上安装Oracle Data Provider for .NET
http://www.oracle.com/technetwork/topics/dotnet/index-085163.html
注意版本和64bit,32bit.

5

服务器是64位还是32位的,IIS配置的是64位的还是32位的,Oracle客户端安装的是64位的还是32位的?
3个问题你本人去检查下,一般情况下,IIS和服务器的位数一致,但也可以改到不同,而Oracle客户端必须和 IIS的位数一致。

5

通过命令注册IIS可以改变其位数:
%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
这里面的aspnet_regiis.exe有两种版本,分别位于32位和64位目录下面,本人原因是操作系统是32位的,不存在64位目录。
你安装的Oracle能否为11g的那个版本号2.112.1.0是11g的64位Oracle 的版本号,假如不是11g的Oracle客户端,肯定是找不到的了。你也可以到安装目录下面去找ODP.NET的目录,下面有.NET要使用的DLL文件,确认其版本号。

5

你的 Oracle.DataAccess 有可能是32位的, 需要在IIS在把32位模式打开。

5

报这个错不一定真是你缺少 ODA 的引用 , 假如缺少引用 ,项目编译都会报错. 设置一下你的IIS,在应用程序池里面:

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明未能加载文件或程序集“Oracle.DataAccess, Version=2.112.1.0