欢迎来到我的地盘:今天是

若得山花插满头,莫问奴归处!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
如果安装了Oracle Client x86,使用.Net访问oracle数据库会得到错误提示
System.InvalidOperationException: 尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。 —> System.BadImageFormatException: 试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)
 
解决办法,在安装了Oracle Client x86之后再安装Oracle Client x64
.Net就可以正常访问了。。。
 
但是PLSQL又不支持Oracle Client x64
如果修改注册表到Wow6432Node后PLSQL会报如下异常
 
Initialization error
Count not load "c:\oracle\product\10.2.0\client_2\bin\oci.dll:
OracleHomeKey : SOFTWARE\ORACLE\KEY_OraClient10g_home2
OracleHomeDir: c:\oracle\product\10.2.0\client_2
found: oci.dll
Using: c:\oracle\product\10.2.0\client_2\bin\oci.dll
LoadLibrary( c:\oracle\product\10.2.0\client_2\bin\oci.dll) return 0
 
———————————-
发现如果只安装x64的oracle,也会报告如下错误
查资料得知是 Machine.config 中的设置需要改变
 
    <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89b483f429c47342" />
        <bindingRedirect oldVersion="2.0.0.0-10.9.9.9" newVersion="2.102.3.2" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
    
修改为
    <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89b483f429c47342" processorArchitecture="amd64" />
        <bindingRedirect oldVersion="2.0.0.0-10.9.9.9" newVersion="2.102.3.2" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
posted on 2011-08-27 13:44  莫问奴归处  阅读(2409)  评论(0)    收藏  举报
轩轩娃