Поставщик Microsoft.Jet.OLEDB.4.0 не зарегистрирован на локальном компьютере

Я получаю сообщение об ошибке ниже, когда после загрузки моего приложения asp.net на оконный сервер 2008 R2

Поставщик 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);

После поиска в Google я обнаружил, что мне нужно установить Office 2007 Системный драйвер, поэтому я тоже пробовал это, но получаю такую ​​же ошибку.


person Arun Rana    schedule 02.11.2012    source источник


Ответы (3)


Вчера я столкнулся с той же проблемой.

Выполнили следующие шаги, которые решили мою проблему: -

  1. Установлен этот 64-разрядный драйвер Microsoft Access Database Engine 2010 Redistributable
  2. В пуле приложений -> свойства, Установите Enable 32 bit в True и С пулом Classic.
  3. Provider=Microsoft.Jet.OLEDB.4.0 изменен на "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + "; Extended Properties='Excel 8.0;HDR=No;IMEX=1'"
  4. Создайте свой проект, установив target platform на Any CPU.
person Siva Charan    schedule 02.11.2012

Я получил решение от @siva, и он спас мне жизнь благодаря ему.

Однако ниже я хочу поделиться снимком экрана, чтобы другие могли видеть, где нужно изменить эту настройку.

Независимо от того, какой пул приложений вы использовали для своего приложения, выберите его из пула приложений в IIS, щелкните его правой кнопкой мыши и откройте настройку Advance.

введите описание изображения здесь

и следуйте инструкциям, которые @siva упомянул в своем ответе

person Arun Rana    schedule 02.11.2012

Поставщик Microsoft.Jet.OLEDB.4.0 не зарегистрирован на локальном компьютере Фон

Клиент Amphis предназначен для работы на 32- или 64-битных ПК под управлением Windows XP, Windows Vista, Windows 7 или Windows 8 Pro, но в 64-битной Windows XP (и, возможно, в других операционных системах) возможно, что некоторые из библиотек DLL Microsoft OLEDB имеют не был зарегистрирован.

Решение №1: p

Решение состоит в том, чтобы вручную зарегистрировать эти библиотеки DLL.

перейдите в Пуск-> Выполнить и введите cmd, это запустит командную строку (также доступна из Пуск-> Программы-> Стандартные-> Командная строка)

введите cd .. и нажмите return type cd .. и снова нажмите return (продолжайте делать это, пока не появится подсказка:>)

теперь вам нужно перейти в специальную папку, которая может быть c: \ windows \ system32, или это может быть c: \ winnt \ system32, или это может быть c: \ windows \ sysWOW64, попробуйте ввести каждый из них, например, cd c: \ windows \ sysWOW64 (если он говорит, что система не может найти указанный путь, попробуйте следующий) cd c: \ windows \ system32 cd c: \ winnt \ system32, если один из них не вызывает ошибки, остановитесь, вы нашли правильная папка.

теперь вам нужно зарегистрировать библиотеки DLL OLE DB 4.0, вводя эти команды и нажимая клавишу возврата после каждого

regsvr32 Msjetoledb40.dll regsvr32 Msjet40.dll regsvr32 Mswstr10.dll regsvr32 Msjter40.dll regsvr32 Msjint40.dll

Решение № 2: p

просто щелкните правой кнопкой мыши проект -> свойства -> сборка -> измените целевой любой процессор на целевой x86

-> f5 и будет работать *

person shishir kumar    schedule 23.01.2013