上一篇 下一篇 |返回日志列表 64位系统上部署程序的过程发生Oracle数据库无法连接的问题以及解决的过程

来源:互联网 发布:java层次遍历二叉树 编辑:程序博客网 时间:2024/05/01 06:30

近段时间公司做了一个大项目,在部署到服务器上发现在程序中使用OracleConnect连接Oracle数据库可以打开并获取数据,但是如果在Vs.net 2005 IDE 的服务器资源管理-数据库连接中不能打开Oracle数据库,提示ORA-06413: 连接未打开,在项目中打开水晶报表(此水晶报表直接连接到Oracle数据库),提示找不到Oracle客户端和网络组件,需要8.1.7或更高版本。

先说明开发环境和服务器环境

1,  开发环境:

  a)         Windows xp sp3 32位系统

  b)         Vs.net 2005 , oracle client

2,  AP服务器环境

  a)         Windows 2003 sp2 x64

  b)         Vs.net 2005 x64

c)         Oracle client x64

3,  DB服务器

  a)         Windows 2003 sp2 x64

  b)         Oracle 10g x64

把程序放上去后,发现无法自动通过水晶报表连接到Oracle数据库,提示需要更多信息(录入数据服务器名,数据库名,用户名和密码),当时怀疑是TNS的问题,检查已经安装好64Oracle客户端的tnsnames.ora,没有问题,ASP.NET程序中通过OracleConnect访问数据库也没有问题,于是安装一个PLSQL Developer,安装完毕后发现无法通过PLSQL Developer 访问DB,经过检查32位的PLSQL Developer无法通过64位的Oracle client 访问64位的Oracle 10g,需要安装32位的客户端,安装32位客户端后,32Oracle 客户端的Net Configuration Assistant一直不打不开,Enterprise Manager Console可以打开但一连接就出现 "ORA-06413:连接未打开"这个错误,PLSQL Developer 此时已经可以正确连接DB,进过检查发现时Oracle的一个BUG,因为OracleNet Service在解析连接的时候存在一个Bug,无法解析路径中包括的圆括号。而在64位系统上32位的ProgramFilesDir (x86)CommonFilesDir (x86) 都默认会被安装到C:/Program Files (x86)这个目录下。

不知道如何修改默认的安装路径(安装程序会把一些文件自动安装到C:/Program Files (x86)这个目录下,虽然我在安装PLSQL Developer时,已经指定了安装路径),然后到网上搜索如何修改,找了半天,发现可以修改:

HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion

下的CommonFilesDir (x86)ProgramFilesDir (x86),修改为指定的C:/Program Files x86目录后,立刻重新安装32Oracle 客户端,安装完毕后,Net Configuration AssistantEnterprise Manager Console正常使用。

         检查vs2005的安装路径其IDE也被安装到了C:/Program Files (x86),于是立马卸载后,重新安装,在安装的时候选择自定义,然后检查每个需要安装子项的安装路径,发现水晶报表的共用组件还是被安装到了C:/Program Files (x86),而不是想要的C:/Program Files x86,于是发现可能需要修改注册表的其他地方。退出安装后,打开注册表与本地注册表对比检查,发现64位系统中多了一项HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node,打开此项,发现里面有:

HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/Microsoft/Windows/CurrentVersion

在此现里面果然还有CommonFilesDir (x86)ProgramFilesDir (x86)都是指向原来的C:/Program Files (x86),马上修改值为:C:/Program Files x86,重新安装vs 2005,经过紧张激动的等待后,迫不及待用vs2005打开项目,然后测“试服务器资源管理-数据库连接”连接DB服务器上的Oracle数据库,连接测试通过,接着打开水晶报表,打开数据库专家,新建连接到DB服务器的Oracle数据库,连接测试OK

         至此,长舒一口气,在vs2005中终于能成功的运行、调试项目,打开水晶报表时不在提示:“需要更多信息(录入数据服务器名,数据库名,用户名和密码)”,可以通过后台的ConnectionInfo指定,窃喜ing。。。。。。。。。。

原创粉丝点击