改变自己
我可以改变世界 改变自己

     今天用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,也不主开开过份大的权限,但下面这种方法,试过似乎不可行:

  • 以Administrator权限登录Windows.
  • 启动Window 资源浏览器找到ORACLE_HOME目录,如C:\Oracle\ora92
  • 右键弹出菜单,选择该目录共享与安全(Win2000下要点击属性)
  • 点击 “安全” 页签
  • 在组和用户名称列表中点击“Authenticated Users” 项.
  • 在该用户的权限列表中,将“读取和运行”的选择框置为不选中状态
  • 再次点击“读取和运行”的选择框,将其设置为选中状态
  • 点击“高级”按钮并在权限项目中确定“Authenticated Users” 是否拥有“读取并运行”权限并应用于“该文件夹,及子文件夹和文件”. 如果不是,双击这样,并确保权限可以“应用于” “该文件夹,及子文件夹和文件”. 该项非常重要你一定要核查.
  • 点击“确定” 按钮
  • 重启动, 以使得所有的修改生效.
posted on 2009-07-26 19:13  dashan  阅读(5020)  评论(0编辑  收藏  举报