IIS 连接 oracle报Oracle.DataAccess版本错误解决办法

时间:2023-03-08 20:39:28
IIS 连接 oracle报Oracle.DataAccess版本错误解决办法

通过IIS连接oracle时报“Could not load file or assembly 'Oracle.DataAccess, Version=2.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342' or one of its dependencies. The system cannot find the file specified.”

原因:IIS的应用池配置的是64位.net frame.但引用的Oracle.DataAccess.DLL是32位的,导致报错。

解决办法:

一、找一个64位的Oracle.DataAccess.DLL文件并放入网站bin目录内;

二、打开IIS网站目录下的Web.Config文件。在<configuration>节点内增加如下内容:

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
            <assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89b483f429c47342" culture="neutral" />
            <bindingRedirect oldVersion="2.112.3.0" newVersion="4.112.4.0"/>
      </dependentAssembly>
</assemblyBinding>
</runtime>

配置说明:

1、assemblyIdentity节点内的name、publicKeyToken分别配置出错信息中提示的文件名、PublicKeyToken.

2、bindingRedirect节点内 oldVersion配置出错信息提示的版本号、newVersion配置第一步中64位文件的版本号。