今天用C#连接oracle10g的时候,遇到了这个问题。windows2003 PRO R2+oracle 10g
Could not create an environment: OCIEnvCreate returned -1
网上的方法就那几个,试遍了也没用。
1、主要是将oracle主目录oracle\的读写权限赋予asp.net或者是IUSER_..和IWAM_..,重启计算机。
2、打开在IIS中的WEB属性--主目录--执行权限【改为-脚本和可执行文件】;
3、应用程序池【改为-MSSharePointAppPool】,刷新;
4、更改安装目录的属性页安全属性,加入ASPNET,IWAM_机器名,IUSER_机器名三个用户并全部设为完全控制。重启。无效。
5、将上述三个用户均加入administrator组。
但是上述方法宣告失败,而现在看来,出现这个问题主要还是权限和配置。可能由于下载版本问题,10g很多时候默认安装后的配置和环境变量设置不全,上述方式失败可可以尝试如下方法:
1、配置tnsnames.ora。配置方法网上很多。
2、完善环境变量配置。环境变量的配置网上也很多,这里不列举了
3、最重要的一点,注册表加入下面键值
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment]
"LD_LIBRARY_PATH"="F:\*\bin"
"NLS_LANG"="AMERICAN_AMERICA.ZHS16GBK"
"TNS_ADMIN"="F:\*\bin"
具体路径根据实际情况修改。注册表加入下面键值后,重新调试程序,顺利通过。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sunshuang1s/archive/2009/06/19/4282788.aspx
原因来自:
安装Oracle9i客户端后,使用System.Data.OracleClient访问Oracle数据库如果出现这种错误:
System.Data.OracleClient requires Oracle client software version 8.1.7 or greater.
原因
Oracle 9i Release 2 客户端在安装到Windows的NTFS分区下时的安全认证设置不正确,引起本机的Authenticated Users用户无法看到ORACLE_HOME目录下的内容; 这导致在ASP.NET以Authenticated Users权限使用System.Data.OracleClient连接Oracle数据库时报出以上错误。
解决方法:
在oracle/bin目录,加入给以下用户/组,授完全权限:
asp.net machine account
administrator
authenticated users
并且将Asp.net加入到administrator组,再重启IIS
上面这种方法是实践过可行的,
网上还有一种方案,大抵相同,有细小区别,其实不主张将asp.net加入administrator,也不主开开过份大的权限,但下面这种方法,试过似乎不可行: