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