Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Cách cài đặt song song ODP.NET 2.111 và ODP.NET 4.112 trong cùng một máy trong khi cả hai đều trỏ đến cùng một máy chủ cơ sở dữ liệu

Câu trả lời ngắn gọn:

Lưu ý:Tôi đã cố gắng cài đặt ODP.NET mới trên máy khách trước đó và có thể kết nối với cơ sở dữ liệu bằng cách sử dụng chuỗi kết nối sau ...

Điều này cho thấy rằng cài đặt mới của bạn không có tnsnames.ora và sqlnet.ora trong / Network / Admin. Nếu bạn đồng ý với ứng dụng cũ khi sử dụng cài đặt ODP.net mới, bạn có thể sao chép chúng từ cài đặt cũ hoặc bạn có thể chỉ định vị trí chung cho tất cả các phiên bản bằng biến môi trường TNS_ADMIN, tức là TNS_ADMIN=C:\MyOracleFilesDir

Câu trả lời dài:

Khi bạn cài đặt ứng dụng khách mới, rất có thể nó cũng đã cài đặt các tệp chính sách của nhà xuất bản vào GAC chuyển hướng các tham chiếu đến Oracle.DataAccess.dll cũ sang phiên bản mới trong quá trình phân giải lắp ráp. Oracle.DataAccess sau đó định vị máy khách thông qua một tham số (DllPath) trong sổ đăng ký. Bạn có thể ghi đè vị trí này bằng cách đặt dllPath trong tệp .config của mình:

<configuration>
  <oracle.dataaccess.client>
    <add key="DllPath"            value="C:\yourotherpath"/>
  </oracle.dataaccess.client>
</configuration>

Đây thường là những gì tôi làm, nhưng khi tôi hiểu điều này nhiều hơn, tôi nhận ra rằng tôi đang ép một dll mới hơn chống lại một khách hàng cũ hơn. Nếu mục tiêu của bạn là không tác động đến ứng dụng khách cũ, thì tùy chọn tốt hơn có thể là xóa các chính sách của nhà xuất bản khỏi GAC (tôi không nghĩ rằng chúng thậm chí còn được cài đặt với bản cài đặt ODAC đầy đủ, chỉ ODP.net):

Nếu bạn cần cài đặt lại chúng, chúng thường được tìm thấy tại oraclepath \ odp.net \ PublisherPolicy.

Một tùy chọn khác và có thể tốt hơn trong dài hạn là định cấu hình các ứng dụng khách cũ để bỏ qua chính sách của nhà xuất bản:http://msdn.microsoft.com/en-us/library/cf9025zt%28v=vs.80%29.aspx

Cuối cùng, tôi khá chắc chắn rằng các thành phần .net cho khung 2.0 so với 4.0 là các tùy chọn cài đặt riêng biệt trong quá trình cài đặt ODP.net. Tôi nghĩ rằng bạn có thể tránh được vấn đề này chỉ bằng cách không cài đặt các thành phần 2.0. Trên lưu ý đó, bạn có thể thực hiện công việc tương tự bằng cách phát triển dự án mới của mình dựa trên odp.net 64 bit. Giống như v2.0 và v4.0, 32 bit và 64 bit cũng không có bất kỳ nhận thức nào về nhau.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. pivot table Oracle - cách thay đổi các mục hàng thành cột

  2. Làm cách nào để loại bỏ một ràng buộc không null trong Oracle khi tôi không biết tên của ràng buộc?

  3. Oracle PL / SQL Collections - Thêm các phần tử vào một bảng hiện có

  4. Hàm NLS_CHARSET_ID () trong Oracle

  5. Phải làm gì nếu bạn gặp lỗi thứ tự dấu trang không chính xác khi sử dụng SQL Server với Trình điều khiển ODBC Oracle của chúng tôi