Как исправить ошибку «Поставщик не совместим с версией клиента Oracle»?
Мы'использовать сборку Oracle.DataAccess.dll версии 2.102.2.20 (32-разрядная версия).
Я развернул наше приложение Web API в IIS и попытался открыть и закрыть соединение:
private static void CheckConnectionUsingOracleClient(string connection)
{
var logger = DiContainer.Resolve();
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 на сервере.