主要是使用OracleClient连接数据库导致的一些错误:

1、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_HOME文件夹(我的是d:\oracle\ora92),点右键,选属性--安全,在组或用户栏中选“Authenticated Users”,在下面权限列表中增加的修改权限,"应用";再去掉刚增加的权限,点击应用;选权限框下面的“高级”按钮,确认“Authenticated Users”后面的应用于是“该文件夹、子文件夹及文件”,按确定把

权限的更改应用于该文件夹;

  ----遇到这种问题一般重装一遍Oracle Client。

 

2、OCIEnvNlsCreate 失败,返回代码为 -1,但错误消息文本不可用

原因:环境句柄(OCIEnv)创建时失败,网上搜了下,OCIEnv的创建函数OCIEnvCreate() 或 OCIEnvNlsCreate()。这样问题就类似于"Could not create an environment: OCIEnvCreate returned -1"(网上该问题的原因认为是对oracle目前设置足够的权限)

解决办法:
给该机的oracle的安装目录设置:
IUSR_<你的机器名>(Internet来宾帐户),IWAM_<你的机器名>(启动IIS进程帐户)设置这两个用户的权限为“完全控制”就可以了,后来考虑到这样权限给的太大了,遂删掉之,还原为最开始的权限设置情况,重连IIS,竟然没问题。还在茫然中:((显然该方法没解决根本问题,不管了)。

  ----我试验了上述方法都无效,结果重启后删除了Microsoft Oracle Client for .Net就好了。

 

3、ORA-12154: TNS: 无法处理服务名

网上对该问题的解决方案太多了,不过我机器情况不一样吧,用控制台添加数据库到树,设置网络服务名跟web.config中的Data Source一致,OK了。

最后说一下我的环境:

Oracle9.2i,Windws 2003 Server(SP1),.net 2.0 

  ----先用Oracle的工具SQL Plus测试一下本地服务名,看看监听什么的都启动没有。

相关文章:

  • 2022-01-13
  • 2021-12-03
  • 2021-06-09
  • 2022-12-23
  • 2021-07-30
  • 2021-04-18
  • 2022-12-23
  • 2022-02-07
猜你喜欢
  • 2022-01-18
  • 2021-10-04
  • 2021-12-06
  • 2021-05-29
  • 2022-12-23
  • 2021-12-05
  • 2022-01-26
相关资源
相似解决方案