3

我有一个带有 ASP.NET 3.5 Web 应用程序(WCF 主机)和一个测试项目的 Visual Studio 解决方案。我想使用Oracle Instant Client(v11,通过 NHibernate)来创建 Oracle 连接,而无需在每台“相关”机器(开发、CI 服务器、测试服务器、生产服务器)上安装 Oracle 客户端工具。

奇怪的是,在我的开发机器(x86)上,我的测试运行没有问题,而我的 Web 应用程序仍然给我以下错误消息:System.Data.OracleClient requires Oracle client software version 8.1.7 or greater

我已经排除的事情:

  • bin 文件夹对每个人都有读取和执行权限
  • DLL 被解锁(Windows 7)
  • Visual Studio 开发服务器和 IIS 7 都出现问题
  • 我还在安装了 Oracle 客户端工具的机器上对此进行了测试,并且可以正常工作

我什至设法让测试在我们的 x64 CI 服务器上运行(更多信息)。

有人知道我错过了什么吗?

4

1 回答 1

3

几乎每次我在新机器上设置 Oracle 时都会看到这个错误。

  1. 检查 oracle bin 文件夹是否在您的路径中
  2. 向客户端文件夹(在我的机器 C:\oracle\product\10.2.0\client_1 上)上的每个人授予读取和执行权限
  3. 在您重新启动计算机之前,更改权限可能不会生效。

编辑:

根据您的评论,步骤 2 和 3 与 Oracle Instant Client 无关。悬停,我猜问题仍然是系统找不到 Oracle Instant Client DLL。将这些 DLL 的位置放入您的路径并查看是否可以解决它是值得的。

来自http://www.oracle.com/technetwork/database/features/instant-client/index-100365.html

安装说明

安装步骤:

  1. 为您的平台下载适当的 Instant Client 软件包。所有安装都需要 Basic 或 Basic Lite 软件包。

  2. 将包解压缩到单个目录中,例如“instantclient”。

  3. 将环境中的库加载路径设置为步骤 2 中的目录(“instantclient”)。在许多 UNIX 平台上,LD_LIBRARY_PATH 是适当的环境变量。在 Windows 上,应使用 PATH。

  4. 开始您的应用程序并享受。

于 2010-09-06T14:33:31.183 回答