1

Windows Server 2008 R2にasp.netアプリケーションをアップロードした後、以下のエラーが発生します

'Microsoft.Jet.OLEDB.4.0'プロバイダーがローカルマシンに登録されていません。

以下のようにoleDbConnectionクラスを使用してExcelファイルを読み取りました

OleDbConnection excelConn = null;

            try
            {
                if (System.IO.Path.GetExtension(fileName) == ".xlsx")
                {

                    excelConn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + "; Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'");
                }
                else
                {
                    excelConn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileName + "; Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'");
                }

                excelConn.Open();
                DataTable dt = new DataTable();

                dt = excelConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

グーグルを検索した後、私は2007 Office System Driverをインストールする必要があることを発見した ので、私もそれを試しましたが、同じエラーが発生します。

4

3 に答える 3

3

昨日、私は同じ問題に直面しました。

私の問題を解決した以下の手順に従ってください:-

  1. この64ビットドライバーをインストールしましたMicrosoftAccessDatabaseEngine2010再頒布可能パッケージ
  2. アプリケーションプール->プロパティで、[プールに設定]Enable 32 bitTrue[Classicプールあり]を選択します。
  3. Provider=Microsoft.Jet.OLEDB.4.0Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + "; Extended Properties='Excel 8.0;HDR=No;IMEX=1'」に変更
  4. target platformに設定してプロジェクトをビルドしますAny CPU
于 2012-11-02T11:34:26.487 に答える
3

私は@sivaから解決策を得ました、そして彼は彼のおかげで私の命を救ってくれました。

ただし、スクリーンショットを共有したいので、他の人がその設定を変更する必要がある場所を正確に確認できます

アプリケーションに使用したアプリケーションプールが何であれ、IISのアプリケーションプールから選択し、それを右クリックして[詳細設定]を開きます。

ここに画像の説明を入力してください

@sivaが彼の答えで言及した手順に従ってください

于 2012-11-02T12:53:14.720 に答える
0

Microsoft.Jet.OLEDB.4.0プロバイダーがローカルマシンに登録されていません背景

Amphis Customerは、Windows XP、Windows Vista、Windows 7、またはWindows 8 Proを実行している32ビットまたは64ビットのPCで動作するように設計されていますが、Windows XP 64ビット(および場合によっては他のオペレーティングシステム)では、一部のMicrosoftOLEDBDLLに登録されていません。

ソリューションNo.1:p

解決策は、これらのDLLを手動で登録することです。

[スタート]->[ファイル名を指定して実行]に移動し、cmdと入力すると、コマンドプロンプトが起動します([スタート]->[プログラム]->[アクセサリ]->[コマンドプロンプト]からも利用できます)。

cd ..と入力し、returnと入力します。cd..と入力し、もう一度returnを押します(プロンプトが表示されるまでこれを続けます:>)

ここで、c:\ windows \ system32またはc:\ winnt \ system32またはc:\ windows \ sysWOW64のような特別なフォルダに移動する必要があります。たとえば、cd c:\windows\のようにそれぞれを入力してみてください。 sysWOW64(システムが指定されたパスを見つけることができないと表示されている場合は、次のパスを試してください)cd c:\ windows \ system32 cd c:\ winnt \ system32エラーが発生しない場合は、停止します。正しいフォルダ。

次に、これらのコマンドを入力し、それぞれの後にreturnキーを押して、OLE DB4.0DLLを登録する必要があります。

ソリューションNo.2:p

プロジェクトを右クリック->プロパティ->ビルド->任意のCPUをターゲットからターゲットx86に変更

->f5そしてそれは動作します*

于 2013-01-23T16:10:18.983 に答える