Oracle数据访问版本问题

时间:2015-08-03 09:33:46

标签: c# asp.net oracle odp.net

我使用ODP.NET连接到oracle。我的测试服务器安装了两个版本的Oracle(v4和v2)。我有第三方应用程序连接到一个版本(v4),我的应用程序连接到另一个(v2)。

当我使用Visual Studio运行我的应用程序时,它运行正常,没有任何错误。但是,当我从IIS发布并运行时,它会抛出错误说

  

无法加载文件或程序集'Oracle.DataAccess,Version = 4.121.1.0,   Culture = neutral,PublicKeyToken = 89b483f429c47342'或其中一个   依赖。定位程序集的清单定义没有   匹配程序集引用。 (HRESULT异常:0x80131040)

如果我将Oracle dll与版本4.1放在一起,它将开始显示不同的错误

  

无法加载文件或程序集“Oracle.DataAccess”或其中一个   依赖。尝试加载程序不正确   格式。

如何在不从机器上删除(卸载)oracle的情况下解决此问题?

注意:在当前方案中,无法从服务器中删除oracle版本。因此,两个版本都将保持安装状态。

1 个答案:

答案 0 :(得分:1)

第一条错误消息告诉您没有安装正确版本的Oracle Data客户端。它正在寻找Oracle.DataAccess, Version=4.121.1.0,但它并没有。

第二条错误消息告诉您它现在存在,但它尝试加载不同的体系结构(即:您在进程为64位时安装了32位或反过来)。

有几个修复:

  1. 安装正确版本的客户端工具,包括正确的'位'版本
  2. 将IIS设置为以其他位模式运行(如果进程现在是64位,则恢复为32位)。
  3. (首选)使用独立于架构的Oracle数据客户端版本:Oracle Managed