我們使用Oracle.DataAccess.dll程序集版本2.102.2.20(32位)。如何解決「提供程序與Oracle客戶端的版本不兼容」?
我部署我們的Web API應用程序來IIS,並試圖開擴和關閉連接:
private static void CheckConnectionUsingOracleClient(string connection)
{
var logger = DiContainer.Resolve<ILogger>();
try
{
logger.LogInfo("Trying to connect to " + connection);
// check whether you can connect to the shop using Oracle.DataAccess
using (var cnn = new Oracle.DataAccess.Client.OracleConnection(connection))
{
cnn.Open();
cnn.Close();
}
logger.LogInfo("Succeeded to connect to " + connection);
}
catch (System.Exception ex)
{
logger.LogError("Failed to connect to " + connection, ex);
}
}
在我的本地機器是好的,但在此服務器上,它拋出試圖initalize的的的OracleConnection時異常:
'Oracle.DataAccess.Client.OracleConnection' 的類型初始值設定項引發異常。 ---> Oracle.DataAccess.Client.OracleException:該 提供商是無法與服務器上
我已經安裝了Oracle客戶端11.2(32位)的Oracle客戶端的版本兼容,我可以看到,在GAC(c:\ windows \ assembly)中的Oracle.DataAccess程序集安裝在32位處理器體系結構中。它在我們的一臺服務器上正常工作,但不是這個。
在IIS中,我還在應用程序池上設置了「啓用32位應用程序」。
如何解決?我花了10個小時以上,到目前爲止嘗試不同的事物:(
我非常希望能夠用Oracle.DataAccess.dll無需在服務器上安裝Oracle客戶端的需求。
與連接器的驅動器可能的問題。嘗試刪除/安裝其他版本。 – PiLHA
可能的重複http://stackoverflow.com/questions/659341/the-provider-is-not-compatible-with-the-version-of-oracle-client – cremor