2013-02-12 21 views
0

我有一個涉及oracle數據庫的web服務。Oracle.DataAccess.Client.OracleException

我使用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

這有幫助嗎? http://stackoverflow.com/questions/659341/the-provider-is-not-compatible-with-the-version-of-oracle-client – 2013-02-12 14:21:15

+0

也許......我會給它一些鏡頭。我顯然需要de-GAC任何Oracle.DataAccess的dll的 – SoftwareSavant 2013-02-12 15:56:59

回答

0

運行本地時,您很可能運行在32位/ x86進程(Visual Studio本身是x86主機)。當你在服務器上運行時,它變成了一個x64進程。

從我所瞭解的情況來看,Oracle Data Client DLL不是x86或者是x64,就像MS dll中存放着允許Dll在兩者之間無縫切換的「任何CPU」。

強制您的宿主應用程序在本地計算機上執行X64(項目屬性,生成),並查看會發生什麼。

我仍然試圖找出如何在本地工作站和服務之間的引用之間翻轉,一個你的小XML代碼段只是給了我一個線索!

+0

很高興我可以幫忙。但是我所做的解決此問題的方法是,在確定我在本地計算機上使用的是什麼DLL之後,我在所有服務器上重新安裝了Oracle.Databaces Dll。 – SoftwareSavant 2013-10-11 00:54:58

+0

我的問題是兩倍。 1)我沒有在服務器上安裝完整的oracle客戶端,也沒有安裝海嘯,2)我只在我的工作站和服務器上使用x86驅動程序。 – codeputer 2013-10-12 14:14:42

相關問題