Web应用使用Oracle数据库产生的问题

开发环境变成win10后,在Oracle数据库的权限与兼容性上产生了诸多问题,在此总结一下:

1.关于Oracle数据库服务端与客户端的区别:

  • 服务端是指服务器端,安装后文件夹名称为OraDb11g_home1,可以建立、维护、管理数据库等。服务器端整体比较大,包含oracle的全部功能。

  • 客户端从字面意思来看是给客户用的,安装后文件夹名称为OraClient11g_home1,配置好客户端的机器可以通过客户端程序访问服务器上的数据。可以增、删、改、查。客户端软件比较小,里面仅包含Oracle的基本运行环境。

所以如果只需要访问某一数据库,而不需要去建立维护,只安装客户端即可。同样,安装了服务端的机器就没必要安装客户端了。


2.关于Oracle数据库与pl/sql工具的配置问题:

plsql只能用来连接Oracle数据库,若要使用plsql访问远程数据库,则必须在本地部署Oracle客户端(也可以是服务端,如不需要从本地建立、维护数据库,则只需安装更轻量化的client版本)。注意:plsql必须与Oracle的版本一致,即32位的Oracle必须安装32或64位的plsql,不能64位的Oracle安装32位的plsql。

当访问远程客户端时,需要先配置服务。

  • 打开Net Configuration Assistant 或 Net Manager,添加新的服务。前者为“本地Net服务名配置”,后者为点击服务命名后点击绿色的加号。
  • 输入服务名称。(任意不重复的英文名称)

  • 选择网络协议,一般为TCP协议。

  • 输入主机名,即服务器端口号。

  • 进行连接测试。(用户名与口令与服务器端数据库管理员联系)

  • 测试完成后建立连接服务。

完成服务配置后,plsql便可正常访问远程数据库。


3.“ORA-12638:身份证明检索失败”的解决方案

  • 打开安装目录 D:\app\ben\product\11.1.0\client_1\network\admin,找到sqlnet.ora。
  • 在里面找到SQLNET.AUTHENTICATION_SERVICES= (NTS),将括号内的NTS修改为NONE

若问题没有解决,打开Net Manager,点击“概要文件”,选择“Oracle高级安全性”,将所选方法中的NTS,通过“<”符号进行关闭,关闭Net Manager,保存配置。

 


4.出现“System.Data.OracleClient需要Oracle客户端软件version8.1.7或更高版本”问题的解决方案

在Web端进行数据库访问时,后端代码出现这个错误。经排查后发现是win10系统更加严格的权限管理导致,Web服务器没有访问本地Oracle数据库文件夹的权限。

解决方案:

打开Oracle数据库的安装目录,在最上级目录处右键属性,点击“安全-编辑-添加-高级-立即查找”,找到NETWORK SERVICE,点击确定,在编辑界面给予NETWORK SERVICE “完全控制”权限。

需要注意的是:只修改最上级目录不一定会应用到子文件夹及子应用,需要检查一下,确保NETWORK SERVICE对所有Oracle数据库文件有控制权限。


5."尝试加载Oracle客户端时引发BadImageFormatException"的解决方案

出现此问题一般是因为Web服务器与Oracle客户端不兼容。

若本地安装的Oracle 32位客户端,IIS在64位环境下,便会出现此错误。

解决方法:

打开IIS管理器,点击应用程序池,在程序处右键,选择高级设置。将“启用32位应用程序”修改为True

若本地安装的Oracle 64位客户端,IIS在32位环境下,也会出现此错误。

解决方法:

  • 方案一:通过修改注册表使vs调用x64版IIS EXPRESS。注册表编辑命令regedit,找到\HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\WebProjects,修改Use64BitllSExpres值为1,重启vs使其生效(本例中vs为2015)
  • 方案二:修改网站属性,使用本地IIS代替IIS EXPRESS,需管理员运行vs。

这种情况强烈建议安装32位的Oracle,一劳永逸,要什么自行车。


总结

在Web端访问数据库时出现问题,软件兼容性或权限层面的可能性要大于代码层面,要根据报错内容具体分析。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值