Sei que tenho esse problema repetidamente quando implanto meu aplicativo em um novo servidor porque estou usando esse driver para conectar-me a um arquivo do Excel. Então aqui está o que estou fazendo ultimamente.
Há um Windows Server 2008 R2, eu instalo os drivers do Access para uma máquina de x64 bits e me livrei dessa mensagem, o que me deixa muito feliz em encontrar outra.
Este aqui abaixo funciona esplendidamente na minha máquina de desenvolvimento, mas no servidor me dá um erro mesmo após a instalação dos drivers ODBC mais recentes, que eu acho que esse é o problema, mas foi assim que resolvi.
private const string OledbProviderString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\\OlsonWindows.xls;Extended Properties=\"Excel 8.0;HDR=YES\"";
Eu substituo pelo novo provedor como este abaixo:
private const string OledbProviderString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\OlsonWindows.xlsx;Extended Properties='Excel 12.0;HDR=YES;';";
Mas enquanto faço isso, há uma coisa que você deve notar. O uso da extensão de arquivo .xlsx e a versão do Excel é 12.0.
Depois de entrar nessa mensagem de erro Erro: "Não foi possível encontrar o ISAM instalável" , decido alterar as coisas um pouco como abaixo:
private const string OledbProviderString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\OlsonWindows.xls;Extended Properties='Excel 8.0;HDR=YES;';";
e sim, eu terminei com essa coisa desagradável, mas aqui recebi outra mensagem O mecanismo de banco de dados do Microsoft Access não pode abrir ou gravar no arquivo 'time_zone'. Ele já foi aberto exclusivamente por outro usuário ou você precisa de permissão para visualizar e gravar seus dados. o que me diz que não estou longe de resolvê-lo.
Talvez exista outro processo que abriu o arquivo e tudo o que preciso fazer é reiniciar e tudo começará a funcionar normalmente, conforme o esperado.