Мы используем сборку 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);
}
}
На моей локальной машине это нормально, но на этом сервере, он вызывает исключение при попытке инициализировать в OracleConnection:
Инициализатор типа для Oracle.DataAccess.Client.OracleConnection ' создал исключение. ---> Oracle.DataAccess.Client.OracleException: Поставщик не совместим с версией клиента Oracle
Я установлен клиент Oracle 11.2 (32 бит) на сервере, и я могу видеть, что в 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