0

我有一个涉及 oracle 数据库的 Web 服务。

我使用 ODP.net oracle 数据提供程序。我相信实际的程序集称为 Oracle.DataAccess.dll。
好吧,虽然在我的本地机器上一切正常,但当我升级到服务器时,我总是得到这个异常......

Oracle.DataAccess.Client.OracleException: The provider is not compatible with the version of Oracle client

我尝试了多种方法,包括尝试强制我的服务使用当前的 DLL ...

<configSections>
   <section name="oracle.dataaccess.client" type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>

  <oracle.dataaccess.client>
    <settings>
      <add name="DllPath" value="C:\WebSites\xxxx.yyy.zzz\OracleDllBinNewbin\Oracle.DataAccess.dll" />
    </settings>
  </oracle.dataaccess.client>
4

1 回答 1

0

在本地运行时,您可能在 32 位/x86 进程中运行(Visual Studio 本身是 x86 主机)。当你在服务器上运行时,它变成了一个 x64 进程。

据我了解,Oracle 数据客户端 dll 是 x86 或 x64,这与 MS dll 不同,后者拥有“任何 CPU”,允许 Dll 在两者之间无缝切换。

强制本地计算机上的托管应用程序在 X64(项目属性,构建)中执行,看看会发生什么。

我仍在试图弄清楚如何在本地工作站和服务之间的引用之间切换,你的小 xml 片段只是给了我一个线索!

于 2013-10-08T15:24:03.160 回答