2009-07-29 43 views
6

Tôi đang cố gắng để có được một trang web DotNetNuke mới và chạy trên máy chủ 64-bit của chúng tôi, và tôi ' m gặp phải thông báo lỗi sau:"Nhà cung cấp 'Microsoft.Jet.OLEDB.4.0' không được đăng ký trên máy cục bộ" ... DNN

"các nhà cung cấp 'Microsoft.Jet.OLEDB.4.0' không được đăng ký trên máy cục bộ"

tôi biết từ kinh nghiệm mà bạn chạy vào điều này khi bạn nhắm mục tiêu 64 lắp ráp bit trên máy 64 bit (hiện tại không có nhà cung cấp OLE-DB 64 bit). Trong trường hợp đó, tôi chỉ đơn giản là nhắm mục tiêu x86 trong Visual Studio và tất cả mọi thứ hoạt động tốt.

Nhưng trong trường hợp này, trang web sử dụng trình biên dịch động, vì vậy không có nơi đơn giản nào để xác định rằng tôi cần nhắm mục tiêu x86. Có suy nghĩ gì không?

TIA.

+0

Tôi biết đây có lẽ là một câu hỏi ngớ ngẩn, nhưng là phiên bản MDAC đúng được cài đặt trên máy chủ? – David

+0

Vâng, không phải là một câu hỏi ngớ ngẩn. Tôi đã có một loạt các trang web khác đang chạy ở đây, nhưng họ không sử dụng biên dịch năng động, và tôi không nghĩ rằng họ sử dụng Jet. Trong mọi trường hợp, các tệp DLL thực sự xuất hiện trên hộp và phiên bản phù hợp với 2003 SP2. –

+0

Tại sao nó lại cố gắng sử dụng Jet/OLEDB?Nó sẽ được đi đến SQL Server trực tiếp. Bạn đang sử dụng gì cho chuỗi kết nối của mình? – EfficionDave

Trả lời

7

Bạn có thể thay đổi nhóm ứng dụng mà bạn đang chạy trang web đó để chạy dưới dạng ứng dụng 32 bit. Trong trình quản lý IIS7, dưới "Advanced Settings" của nhóm ứng dụng của bạn, và sau đó thiết lập "Enable 32-bit Applications" thành true.

Bạn cũng có thể làm điều này với AppCmd từ một giao diện điều khiển như sau:

appcmd apppool set /apppool.name:MyNukeSite /enable32BitAppOnWin64:true 

Trong IIS6 - bạn có thể thử một cái gì đó như thế này (2 dòng ở đây, chạy aspnet_regiis khi thay đổi giá trị metabase xong) .. .

cscript %SystemDrive%\inetpub\AdminScripts\adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 1 
aspnet_regiis.exe -i 

Xem sau để biết thêm:

+0

Có vẻ như chúng tôi đang đi đúng hướng, nhưng đây là IIS 6.0. Đó là cái gì tôi có thể chỉnh sửa trực tiếp trong metabase? –

+0

+1 cho SO giúp giải quyết vấn đề tối nghĩa của tôi một lần nữa. Cảm ơn! – Mercurybullet

+0

+1 cho thông tin appcmd – TheVillageIdiot

3

HI, Bây giờ Microsoft đã phát hành năm 2010 Office System driver Beta: Data Connectivity Linh kiện được hỗ trợ cả 32 bit cũng như 64 bit OS. Vì vậy, việc sử dụng trình điều khiển này thay vì trình điều khiển Microsoft.Jet.OLEDB.4.0 truyền thống sẽ cung cấp cho chúng ta một ứng dụng 64 bit chạy trên một máy chủ 64 bit (đó là những gì chúng ta thực sự cần).

Mặc dù đây là bản thử nghiệm, nhưng nó hoạt động tốt cho tôi.

Bạn có thể tải trình điều khiển này từ 2010 Office System Driver Beta: Data Connectivity Components

Thnks

1

Bạn không nên cố gắng để nhắm mục tiêu ứng dụng của bạn đến 32-bit trong trường hợp bạn đang mất đi những lợi thế của việc sử dụng hệ thống 64-bit. Như đã chỉ ra, bạn có thể sử dụng số Access Database Engine 2010 mới nhất để giải quyết vấn đề này. Vui lòng tham khảo my blog post để biết giải pháp hoàn chỉnh.

Hy vọng điều đó sẽ hữu ích.

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