2013-03-08 42 views
11

Tôi đang xây dựng ứng dụng ASP.NET với C# và tôi muốn kết nối với cơ sở dữ liệu oracle.
Tôi đã thêm tham chiếu đến Oracle.DataAccess trong ứng dụng của tôi trên máy tính Microsoft Windows Server 2008 64 bit của tôi. Tôi cũng cài đặt ODAC (Oracle Data Access Component) trên máy tính của tôi và Oracle.DataAccess.dll cũng có mặt trên con đườngKhông thể tải tập tin hoặc lắp ráp 'Oracle.DataAccess lỗi

C:\Windows\Microsoft.NET\assembly\GAC_64\Oracle.DataAccess

này nhưng khi tôi đang cố gắng để kết nối i gặp phải lỗi sau:

Could not load file or assembly 'Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342' or one of its dependencies. The system cannot find the file specified.

+1

bạn đã thử cài đặt phiên bản 32 bit chưa? –

+0

không, tôi đã cài đặt phiên bản 64 bit –

+0

@FelipeOriani Tôi nên làm gì? Trên thực tế tôi đang sử dụng máy 64bit. –

Trả lời

5

Theo như tôi biết, việc lắp ráp Oracle.DataAccess chỉ hoạt động với 32 bit, tôi cũng có loại vấn đề này với 64 bit và nó thực sự không hoạt động. Giải pháp của tôi đã loại bỏ 64bit từ GAC và cài đặt 32 bit trên GAC. Tôi cũng loại bỏ bất kỳ tập tin .dll trong thư mục bin để ứng dụng của tôi tìm thấy lắp ráp trên GAC.

Không có vấn đề gì nếu máy và hệ điều hành của bạn là 64 bit, phiên bản 32 bit sẽ hoạt động tốt.

CẬP NHẬT

tôi khuyên bạn hãy nhìn vào Official Oracle ODP.NET, Managed Driver, đó là một phiên bản tốt hơn so với Oracle.DataAccess. Điều này Managed Driver không cần Oracle Client trên máy, và bạn chỉ cần cung cấp TNS trên trường DataSource của connection string và nó hoạt động tốt cho 3264 bit.

+0

x64 Oracle.DataAccess lắp ráp cũng làm việc vì tôi đã sử dụng trên khác bằng cách sử dụng chỉ x64 và nó làm việc tốt. Tôi không thể xác định lý do tại sao nó gặp phải trong hệ thống của tôi. @felipe Oriani cảm ơn rất nhiều đến với bạn để giải quyết vấn đề của tôi. –

+0

Oracle.DataAccess lắp ráp có 32 bit và 64 bit phiên bản và cả hai đều làm việc mà không có vấn đề. Tôi đã sử dụng cả hai phiên bản. –

+0

nó vẫn xuất hiện trên máy của tôi. Máy của tôi cũng có 64 bit –

3

Bạn cần phải cài đặt cả hai phiên bản x64 và x86 của Oracle, bởi vì một cái gì đó (tôi nghĩ đó là Visual Studio) sử dụng phiên bản x86 khi gỡ lỗi.

+0

tôi đã xuất bản trên IIS. –

1

lỗi cơ bản giống nhau

thiếu thành phần cài đặt ODP.NET như bài đăng cuối cùng từ tôi và người tham gia trả lời khác.

Bạn kiểm tra GAC ​​chưa?

Nếu bạn không thấy thư mục Oracle.xxx,

bạn không thực hiện bất kỳ tiến trình nào.

đặt phiên bản và bit chính xác của Oracle.DataAccess.dll vào thư mục ứng dụng/BIN và tạo tham chiếu cục bộ. Nó giải quyết được nhiều vấn đề.

+1

Tôi chắc chắn về phiên bản chính xác của Oracle.DataAccess.dll. Và tôi đã cố gắng để tham khảo địa phương nhưng nó gặp phải lỗi sau. Không thể tải tệp hoặc lắp ráp Oracle.DataAccess hoặc một trong các phụ thuộc của nó. Một nỗ lực đã được thực hiện để tải một chương trình với một định dạng không chính xác. –

1

Để chạy trang web của bạn, bạn phải sử dụng IIS vì máy chủ phát triển của studio trực quan chỉ chạy ở chế độ 32 bit.
Trong nhóm ứng dụng IIS, hãy cài đặt ứng dụng của bạn chạy 64 bit. (Cài đặt ở cài đặt nâng cao)

1

Trong VS2010, tôi đã thay đổi đích nền thành x64 và thông báo lỗi này biến mất.

0

Để giải quyết lỗi này, tôi đặt nhóm ứng dụng của mình trong IIS để cho phép các ứng dụng 32 bit. Mở trình quản lý IIS, nhấp chuột phải vào nhóm ứng dụng và chọn Cài đặt nâng cao -> đặt “Bật ứng dụng 32 bit” thành True. Nó làm việc tốt cho tôi.

Các vấn đề liên quan