您的位置:首页 > 数据库 > Oracle

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

2007-12-06 20:56 447 查看
主要是使用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测试一下本地服务名,看看监听什么的都启动没有。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐