我有一个触及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>
答案 0 :(得分:0)
在运行本地时,您可能在32位/ x86进程中运行(Visual Studio本身是x86主机)。当您在服务器上运行时,它将变为x64进程。
根据我的理解,Oracle数据客户端dll是x86或x64,不像MS dll那样容纳“任何CPU”,允许Dll在两者之间无缝翻转。
强制您的本地计算机上的托管应用程序在X64(项目属性,构建)中执行,并查看会发生什么。
我仍在试图弄清楚如何在本地工作站和服务之间的引用之间切换,你的小xml片段只是给了我一个线索!