【问题标题】:Error connecting to oracle database from a .net application on Windows 7在 Windows 7 上从 .net 应用程序连接到 oracle 数据库时出错
【发布时间】:2012-03-06 11:54:03
【问题描述】:

当我的 .Net winforms 应用程序尝试连接到 64 位 Windows 7 机器上的 Oracle 数据库时出现此错误。我使用 System.Data.OracleClient.dll 作为提供程序。

OCIEnvCreate 失败,返回代码 -1,但错误消息文本不是 可用。

我能够在这台机器上使用“udl 文件”和“SQL Plus”实用程序连接到同一个数据库。

在我的 windows 7 机器上,ORACLE_HOME 目录也正确指向环境变量和注册表中的 32 位客户端,但仍然出现相同的错误。

此外,即使不存在任何这些环境变量,我也能够从 Windows XP 机器上的 .Net 应用程序连接到该数据库。

您能建议吗?

感谢阅读。

【问题讨论】:

  • 你用什么连接? ODP.NET, ODBC, ... ?
  • 我使用 System.Data.OracleClient.dll 连接到 Oracle db。
  • 您使用的是哪个版本的 .NET 框架? System.Data.OracleClient 自 .NET 4.0 起已弃用,Microsoft 建议现在使用 ADO.NET Provider for Oracle。

标签: .net winforms oracle windows-7


【解决方案1】:

【讨论】:

  • 感谢 Antonio 的输入。我的 oracle_home 目录正确指向 32 位客户端,但仍然出现相同的错误。请您指教吗?谢谢。
  • 您在应用程序的平台目标中设置了什么?试试 x86
  • 好吧,我真的希望我能帮助你更多,但现在我只是在猜测,如果你将所有需要的 ODP.NET 二进制文件放在 bin 文件夹中,它会起作用吗?
【解决方案2】:

根据您的问题,了解您的设置(即 VS2010 /2008 等)可能有用吗?
这是最近的问题还是新机器构建?

您是否安装了单个 oracle 客户端,即哪个版本,或者您是否尝试使用即时客户端? (您之前是否安装了可能导致混淆的旧版本)

System.Data.OracleClient 现已弃用,ODP.NET (Oracle.DataAccess) 是 oracle 直接推荐的替代品。

我有一台带有 VS2010 + ODP.NET 11.2 (ODAC) 的 windows 7 开发机器,带有一个 11.1 32 位客户端和一个 64 位客户端(不确定我是否需要这个)。

您的解决方案是在使用 gui 时还是在运行时构建或收到此错误消息? 您可以使用 VS 中的服务器资源管理器进行连接吗? 您是否有一个使用 oracle 的 .net 应用程序可以在您的机器上运行并进行测试?

您也可以在环境中设置 TNS_ADMIN 路径。

检查您是否设置了路径,包括例如C:\Oracle\product\11.1.0\client32\bin,尝试添加到路径环境的开头。

您的应用程序是否在另一个帐户下运行?

很可能是 Antonio 所暗示的客户端配置问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-23
    • 1970-01-01
    • 2022-12-03
    • 2015-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多