Tôi biết rằng tôi gặp vấn đề này nhiều lần khi tôi triển khai ứng dụng của mình trên máy chủ mới vì tôi đang sử dụng trình điều khiển này để kết nối với tệp Excel. Vì vậy, đây là những gì tôi đang làm gần đây.
Có Windows Server 2008 R2, tôi cài đặt trình điều khiển Access cho máy x64 bit và tôi thoát khỏi thông báo này, điều này khiến tôi rất vui khi gặp phải người khác.
Cái này ở đây hoạt động tuyệt vời trên máy dev của tôi nhưng trên máy chủ gây ra lỗi cho tôi ngay cả sau khi cài đặt trình điều khiển ODBC mới nhất, tôi nghĩ đây là vấn đề, nhưng đây là cách tôi giải quyết nó.
private const string OledbProviderString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\\OlsonWindows.xls;Extended Properties=\"Excel 8.0;HDR=YES\"";
Tôi thay thế bằng nhà cung cấp mới như thế này dưới đây:
private const string OledbProviderString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\OlsonWindows.xlsx;Extended Properties='Excel 12.0;HDR=YES;';";
Nhưng khi tôi làm điều này, có một điều bạn nên chú ý. Sử dụng phần mở rộng tệp .xlsx và phiên bản Excel là 12.0.
Sau khi tôi gặp phải thông báo lỗi này Lỗi: "Không thể tìm thấy ISAM có thể cài đặt" , tôi quyết định thay đổi những thứ giống như dưới đây:
private const string OledbProviderString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\OlsonWindows.xls;Extended Properties='Excel 8.0;HDR=YES;';";
và vâng, tôi đã làm xong điều khó chịu đó, nhưng ở đây tôi nhận được một thông báo khác Công cụ cơ sở dữ liệu Microsoft Access không thể mở hoặc ghi vào tệp 'time_zone'. Nó đã được mở độc quyền bởi một người dùng khác hoặc bạn cần có quyền để xem và ghi dữ liệu của nó.Điều đó cho tôi biết tôi không xa để giải quyết nó.
Có thể có một quá trình khác đã mở tệp trong khi đó và tất cả những gì tôi phải làm là khởi động lại và tất cả sẽ bắt đầu chạy trơn tru như mong đợi.