提示错误OCIEnvCreate 失败,返回代码为 -1

win7下.NET连接oracle,提示错误OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用


最近三天痛苦了,被oracle和.NET之间的连接头都搞大了,经过不但的安装和找原因,终于搞清楚了一下两点:

(1)System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本”

(2)System.Exception: OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用。

 

解决问题一:

一连接数据库就出错误,刚开始弹出

“System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本”

解决方法:刚开始我觉得我通过webservice调用远程服务的oracle数据库,我不操作oracle数据库,因此,我本机上不需要安装oracle数据库,理论上觉得应该是这样的,可是最后发现,这样是不对的,结论:c#写的webservice调用远程的oracle数据库时,本机上也要安装客户端,而java则不需要。安装客户端后问题得到解决。

 

解决问题二:

win7下.net2008 连接oracle,提示错误OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用

 

在操作Oracle时出现以下错误:

   System.Exception: OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用。

   在 System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)  

   在 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)  

   在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)  

  在 System.Data.OracleClient.OracleConnection.Open()

 

我是通过webservice调用远程服务器的Oracle数据库,本机没有安装Oracle

经过一天的网上找资料,不断的调试和安装,终于找到原因了:

一切的一切都是WIN7的安全模式,权限问题,在win7下要用管理员身份运行所有的不兼容软件

 

 

解决方案:找到vs2008,右击“以管理员身份运行”,启动vs2008,然后打开项目/解决方案,选中你的程序,运行,通过。

之所以弹出以上的错误,都是因为身份不够,以管理员身份运行就OK了

总结:WIn7比XP多了个管理员权限,就是右击程序有“以管理员身份运行”

因此,当你的程序,代码在XP下能运行时,而在win7下弹出错误,就试试这个方法,在你的程序上右击“以管理员身份运行”,一般都能解决问题。

 

PL/SQL也要用管理员身份运行,否则也是连不上。

你可能感兴趣的:(C#)