如果在安装32位Oracle客户端组件的情况下64位模式运行, 将出现此问题.

场景重现

  • 在一台Windows 10 64-bit电脑上
  • 安装了Oracle 11gR2 32-bit客户端
  • 服务器安装oracle 11gR2 64位服务端
  • 用 VS2019 写的一个基于数据库驱动的项目(MVC,webform)
  • 远程操作Oracle数据库都挺正常的
  • 后来发布到服务器IIS MVC项目正常,webform连不上数据库(它们数据库连接语句一样),在本机IIS又多正常(后面才知道是因为我本机安装了32位客户端)
  • 访问Oracle数据库出现如下异常:
  •  

     

    异常原因

    • 几经折腾之下(夜深人静的时候跟度娘交流好多次)
    • 发现是项目中连接Oracle用的是 System.Data.OracleClient这个VS2010自带的数据库驱动是32-bit
    • 而项目中用该驱动操作数据库的时候最终还是必须通过本机的 Oracle 客户端去操作.
    • 而原先本机的Oracle客户端32-bit, 操作数据库自然正常
    • 而现在本机的Oracle客户端64-bit, 操作数据库自然异常

    解决方案(几种)

    1. 去搞一个64-bitSystem.Data.OracleClient驱动(不建议这么做, VS都说该驱动早过时了, 叫你不要用了)
    2. 再装一个Oracle 11gR2 32-bit的客户端(我反正是这么干的) 在服务器安装32位客户端(还是不行,重启一下就可以了
posted @   我是牙牙  阅读(1872)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示