このドライバーを使用してExcelファイルに接続しているため、新しいサーバーにアプリケーションを展開するときに、この問題が何度も発生することはわかっています。だからここで私が最近やっていることです。
Windows Server 2008 R2があり、私はx64ビットマシン用のAccessドライバーをインストールし、このメッセージを表示せずに別のものにぶつかっただけでとても満足しています。
以下のこれは私の開発マシンでうまく機能しますが、最新のODBCドライバーをインストールした後でもサーバーでエラーが発生します。これは問題だと思いますが、これは私がそれを解決した方法です。
private const string OledbProviderString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\\OlsonWindows.xls;Extended Properties=\"Excel 8.0;HDR=YES\"";
以下のような新しいプロバイダーに置き換えます。
private const string OledbProviderString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\OlsonWindows.xlsx;Extended Properties='Excel 12.0;HDR=YES;';";
しかし、私がこれをするとき、あなたが気づくべき一つの事があります。.xlsxファイル拡張子とExcelバージョンの使用は12.0です。
このエラーメッセージError: "Could Not Find Installable ISAM"に遭遇した後、以下のように少し変更することにします。
private const string OledbProviderString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\OlsonWindows.xls;Extended Properties='Excel 8.0;HDR=YES;';";
はい、それで厄介なことは終わりましたが、ここで別のメッセージが表示されます。MicrosoftAccessデータベースエンジンがファイル 'time_zone'を開いたり、ファイルに書き込んだりできません。すでに別のユーザーによって排他的に開かれているか、そのデータを表示および書き込む権限が必要です。それは私がそれを解決するのにそれほど遠くないことを私に伝えます。
その間にファイルを開いた別のプロセスがあり、私がしなければならないすべては再起動であり、すべて期待どおりスムーズに実行を開始します。