0

首先,我想说我阅读了其他问题,但没有一个对我有帮助。

我收到此错误的服务器是 Windows 2003 SP2 + .net framework 4.0 + Oracle i9 客户端

我已经下载了最新的 ODP.NET ODAC1120320Xcopy_32bit.zip 并将这些 dll 复制了出来。

  • oci.dll
  • ociw32.dll
  • Oracle.DataAccess.dll
  • orannzsbb11.dll
  • oraocci11.dll
  • oraociei11.dll
  • OraOps11w.dll

我创建了一个只连接到预言机的小应用程序。关联

当我运行这个应用程序时,我得到了 The provider is not compatible with the version of Oracle client 错误。

在下载页面上还写了:下面的每个 32 位 ODAC 客户端下载都支持连接到 Oracle 数据库版本 9.2、10.1、10.2、11.1 和 11.2。

所以我想我的 9i 数据库应该没问题。

我不确定是否应该使用一些较旧的 ODP.NET 版本。SO上的一个答案建议使用支持.NET 2.0的版本11.1.0.6.20,但我的应用程序是针对.NET 4.0编写的。

我能做些什么 ?

4

1 回答 1

0

我不知道在没有某种安装的情况下运行 oracle 客户端的任何受支持的方法(xcopy 版本包含一个用于安装的批处理文件,因此“xcopy”有点用词不当。

也就是说,如果你要做一些不受支持的事情,你不妨选择最终会得到支持的事情——100% 托管的提供程序(意味着没有额外的非托管 dll 可复制)目前处于测试阶段: http:// www.oracle.com/technetwork/database/windows/downloads/odpmbeta-1696432.html

即使只是为了学习经验,我也很乐意看到一些东西到最后,所以如果你想看到你目前的成果,我会理解的。oracle 文档确实表明应用程序目录实际上是非托管 dll 搜索顺序中的第一个。我的猜测是需要额外的 dll(您使用的版本比链接的文章新)。我会使用Process Monitor之类的工具查看它从您的应用程序目录外部加载哪些特定的 dll,并查看您是否可以从新的 ODAC 中找到等价物进行复制。

于 2013-06-06T23:55:11.273 回答