Chúng tôi đang sử dụng phiên bản lắp ráp Oracle.DataAccess.dll 2.102.2.20 (32 bit).Cách khắc phục "Nhà cung cấp không tương thích với phiên bản máy khách Oracle"?
tôi triển khai ứng dụng Web API của chúng tôi để IIS và cố gắng khai mạc và bế mạc kết nối:
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);
}
}
Trên máy tính địa phương của tôi nó là tốt, nhưng trên máy chủ này nó ném một ngoại lệ khi cố gắng initalize các các OracleConnection:
Trình khởi tạo kiểu cho 'Oracle.DataAccess.Client.OracleConnection' đã ném một ngoại lệ. ---> Oracle.DataAccess.Client.OracleException: Nhà cung cấp không tương thích với các phiên bản của Oracle client
Tôi đã cài đặt Oracle khách hàng 11,2 (32 bit) trên máy chủ và tôi có thể thấy rằng trong GAC (c: \ windows \ assembly) lắp ráp Oracle.DataAccess được cài đặt trong kiến trúc bộ vi xử lý 32 bit. Nó hoạt động tốt trên một trong các máy chủ của chúng tôi nhưng không hoạt động với máy chủ này.
Trong IIS, tôi đã đặt 'Bật ứng dụng 32 bit' trên Hồ bơi ứng dụng.
Làm cách nào để khắc phục? Tôi đã dành hơn 10 tiếng đồng hồ cho đến nay cố gắng điều khác nhau :(
Tôi lý tưởng muốn để có thể sử dụng Oracle.DataAccess.dll mà không cần phải cài đặt một khách hàng của Oracle trên máy chủ.
Có thể vấn đề với trình điều khiển của đầu nối. Hãy thử gỡ bỏ/cài đặt các phiên bản khác. – PiLHA
Bản sao có thể có của http://stackoverflow.com/questions/659341/the-provider-is-not-compatible-with-the-version-of-oracle-client – cremor