当我的.Net winforms应用程序尝试连接到64位Windows 7计算机上的Oracle数据库时出现此错误。使用System.Data.OracleClient.dll作为提供程序。
OCIEnvCreate失败,返回码为-1,但错误消息文本未失败 可用。
能够使用“udl文件”并在此计算机上使用“SQL Plus”实用程序连接到同一数据库。
在我的Windows 7机器上,ORACLE_HOME目录正确指向环境变量和注册表中的32位客户端,但仍然遇到相同的错误。
此外,即使没有任何这些环境变量,也可以在Windows XP计算机上从.Net app连接到此数据库。
你能告诉我吗?
感谢阅读。
答案 0 :(得分:2)
该异常的最常见原因是您的ORACLE_HOME设置不正确或指向32位,请参阅:
答案 1 :(得分: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,尝试将其添加到路径环境的开头。
您的应用程序是否在其他帐户下运行?
很可能像安东尼奥这样的客户配置问题。