Bir Excel dosyasına bağlanmak için bu sürücüyü kullandığım için uygulamamı yeni bir sunucuya dağıtırken bu sorunu defalarca yaşadığımı biliyorum. İşte son zamanlarda yaptığım şey bu.
Bir Windows Server 2008 R2 var, bir x64 bit makine için Access sürücülerini yüklüyorum ve bu mesajdan kurtuldum, bu da beni başka birine çarpmaktan çok mutlu ediyor.
Bu aşağıda aşağıda dev makinemde harika çalışıyor ancak sunucuda en son ODBC sürücülerini yükledikten sonra bile bana bir hata veriyor, ki bu sorunun olduğunu düşünüyorum, ama bu nasıl çözdüm.
private const string OledbProviderString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\\OlsonWindows.xls;Extended Properties=\"Excel 8.0;HDR=YES\"";
Aşağıdaki gibi yeni sağlayıcı ile değiştirin:
private const string OledbProviderString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\OlsonWindows.xlsx;Extended Properties='Excel 12.0;HDR=YES;';";
Ama bunu yaparken dikkat etmeniz gereken bir şey var. .Xlsx dosya uzantısını ve Excel sürümünü kullanmak 12.0'dır.
Bu hata iletisine girdikten sonra Hata: "Yüklenebilir ISAM bulunamadı" , şeyleri aşağıdaki gibi biraz değiştirmeye karar verdim:
private const string OledbProviderString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\OlsonWindows.xls;Extended Properties='Excel 8.0;HDR=YES;';";
ve evet, bu kötü şeyi bitirdim, ama burada başka bir mesaj aldım Microsoft Access veritabanı motoru 'time_zone' dosyasını açamıyor veya yazamıyor. Yalnızca başka bir kullanıcı tarafından zaten açılmış veya verilerini görüntüleme ve yazma iznine ihtiyacınız var.bana çözmekten çok uzak olmadığımı söylüyor.
Belki bu arada dosyayı açan başka bir işlem var ve tek yapmam gereken bir yeniden başlatma ve her şey beklendiği gibi sorunsuz çalışmaya başlayacak.