8:13:49 一直想整理出这几个问题但是找不出时间来,今天周末静下心来写点东西。
最近做的项目中出现了Oracle数据库访问,客户要求程序最终发布在Server 2008(64位SP2)中,先前的SQL Server数据库也安装在这台Server 2008中,于是也想把Oracle数据库安装在这台服务器上,安装普通的Oracle 9i数据库版本是Oracle(R) Enterprise Manager 版本9.2.0.1.0正式版,总是安装不成功,有几个检测过不去,估计是因为这个Oracle 9i是32位的,它不能安装在这台服务器上,于是就去下载一个Oracle 11g(64)安装成功了,但是在开发及其中安装Oracle 11g客户端时候,这边又安装不上了,开发的机器是32位的,没有办法,在我的这个开发机器上装上Oracle 9i服务端暂时用着,好多人等着写代码呢,暂时开发部这边是搞定了。
这里有个小插曲,开发人员在自己的机器上装上Oracle 9i客户端和PL\SQL都能连接上我的服务器,但是从VS2005中来访问数据库就不行了,提示的“System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本。”错误,相信很多刚刚接触Oracle的朋友也遇到过,在网上找到了解决方法。
原因:
Oracle 9i 客户端在安装到Windows的NTFS分区下时的安全认证设置不正确,引起本机的Authenticated Users用户无法看到ORACLE_HOME目录下的内容; 这导致在ASP.NET以Authenticated Users权限使用System.Data.OracleClient连接Oracle数据库时报出以上错误。
解决:
要解决以上问题,只要给Authenticated Users 组加上访问Oracle Home目录的权限即可
1、以Administrator权限登录Windows.
2、启动Window 资源浏览器找到ORACLE_HOME目录,如C:\Oracle\ora92
3、右键弹出菜单,选择该目录共享与安全(Win2000下要点击属性)
4、点击 “安全” 页签
5、在组和用户名称列表中点击“Authenticated Users” 项.
6、在该用户的权限列表中,将“读取和运行”的选择框置为不选中状态
7、再次点击“读取和运行”的选择框,将其设置为选中状态
8、点击“高级”按钮并在权限项目中确定“Authenticated Users” 是否拥有“读取并运行”权限并应用于“该文件夹,及子文件夹和文件”. 如果不是,双击这样,并确保权限可以“应用于” “该文件夹,及子文件夹和文件”. 该项非常重要你一定要核查.
9、点击“确定” 按钮
10、重启动, 以使得所有的修改生效.
上面的问题困扰了我半天的时间总算弄好了, 程序写好了,发给测试部,又出毛病了,测试部将程序发布在Server 2008上在那边通过Server 2008环境来访问普通机器上的Oracle服务器总是程序总是不能连接上数据库,估计还是操作系统位数的问题后来请教了很多公司的高手都没能搞定,后来发现原来.NET中的ConsoleApplication项目和ClassLiberary项目都可以设置运行环境的具体设置如下:
1.右击这个项目名->属性
2.点击生成->目标平台,级可以看到X32,X64,Any CPU,在默认情况下这里会根据操作系统的情况自己设定,把这里修改成X64
这样设定好之后就可以通过Server 2008来访问XP机器上的Oracle数据库了,普通的ConsoleApplication项目中访问没有问题,但是后来试验一个WebSite发现右击这个WebSite没有属性选项,傻眼了,后来心想,WebSite不可能直接去访问数据库的啊,要有中间层的就是一个ClassLiberary,三层架构啊,于是按照上面的方法设置ClassLiberary,还是不行,到这里是实在没有办法了,那位朋友有过类似的经历,发表点见解啊,不胜感激!!!
开发部这边的环境是
操作系统: Microsoft Windows XP Professional 版本2002 + Service Pack 2
Oracle服务端:Oracle(R) Enterprise Manager 版本9.2.0.1.0正式版
Oracle客户端e: Oracle(R) Enterprise Manager 版本9.2.0.1.0正式版
测试那边
程序发布在:Windows Server 2008 standard(64位) + Service Pack 2 + Oracle 11G客户端
Oracle服务端:Microsoft Windows XP Professional 版本2002 + Service Pack 2
+Oracle(R) Enterprise Manager 版本9.2.0.1.0正式版