Lỗi “Microsoft.Jet.OLEDB.4.0 provider is not registered on the local machine” thường xuất hiện khi bạn cài đặt IIS7 trên Windows 7 và sử dụng ASP.NET để truy cập dữ liệu từ file Access trong khi đã cài Office Access một cách bình thường. Khi chạy chương trình, lỗi có thể được hiển thị như sau:
!Hình ảnh minh họa lỗi Jet OLEDB
Nguyên nhân chính của lỗi này là vì Microsoft không cung cấp phiên bản 64-bit cho bộ điều khiển “Microsoft.Jet.OLEDB.4.0”. Do đó, ứng dụng của bạn sẽ chỉ có thể chạy ở chế độ tương thích 32-bit. Để khắc phục, bạn cần cấu hình lại IIS để cho phép các ứng dụng 32-bit chạy trên hệ thống 64-bit.
Cụ thể, bạn thực hiện như sau:
Vào IIS Manager, chọn mục Application Pools (Bể Ứng dụng). Chọn bể ứng dụng mà dự án của bạn đang sử dụng – thường là DefaultAppPool. Sau đó nhấn vào Advanced Settings (Thiết lập cao cấp), tìm đến tùy chọn Enable 32-Bit Applications và thiết lập giá trị thành True.
!Hình ảnh cấu hình Enable 32-Bit Applications
Trên IIS7, bạn cũng có thể dùng lệnh dòng lệnh để thay đổi nhanh chóng như sau:
|
|
Nếu bạn đang sử dụng IIS6, hãy áp dụng lệnh dưới đây:
|
|
Lưu ý quan trọng: Đừng quên khởi động lại IIS bằng lệnh iisreset
để những thay đổi có hiệu lực!
Việc cấu hình đúng đắn giúp bạn giải quyết triệt để lỗi liên quan đến driver Jet OLEDB và đảm bảo ứng dụng ASP.NET hoạt động ổn định ngay cả khi truy cập cơ sở dữ liệu Access.