Thứ tự ưu tiên để phân giải tên TNS trong ODP.NET, Trình điều khiển được quản lý là sau (xem tại đây):
- bí danh nguồn dữ liệu trong phần 'dataSources' bên dưới phần trong tệp cấu hình .NET.
- bí danh nguồn dữ liệu trong tệp tnsnames.ora tại vị trí được chỉ định bởi 'TNS_ADMIN' trong tệp cấu hình .NET.
- bí danh nguồn dữ liệu trong tệp tnsnames.ora có trong cùng thư mục với .exe.
- bí danh nguồn dữ liệu trong tệp tnsnames.ora có ở% TNS_ADMIN% (trong đó% TNS_ADMIN% là cài đặt biến môi trường).
- bí danh nguồn dữ liệu trong tệp tnsnames.ora có tại% ORACLE_HOME% \ network \ admin (trong đó% ORACLE_HOME% là cài đặt biến môi trường).
Tôi tin rằng lý do mẫu của bạn hoạt động với Oracle.DataAccess nhưng không với Oracle.ManagedDataAccess là cấu hình dựa trên sổ đăng ký Windows không được hỗ trợ cho phần sau (xem tài liệu) - cài đặt ODP.NET đặt khóa đăng ký ORACLE_HOME (HLKM \ SOFTWARE \ Oracle \ Key_NAME \ ORACLE_HOME) chỉ được nhận dạng bởi phần không được quản lý.