ITPub博客

首页 > Linux操作系统 > Linux操作系统 > iis部署 访问oracle文件夹

iis部署 访问oracle文件夹

原创 Linux操作系统 作者:anglei 时间:2009-07-09 08:58:26 0 删除 编辑

IIS下部署asp.net程序(访问Oracle数据库数据)的几个问题

转载:http://rushing.bokee.com/viewdiary.15434953.html

主要是使用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测试一下本地服务名,看看监听什么的都启动没有。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14906671/viewspace-608672/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 达·芬奇睡眠法
请登录后发表评论 登录
全部评论

注册时间:2008-08-08

  • 博文量
    12
  • 访问量
    23402