Поставщик «Microsoft.ACE.OLEDB.12.0» не зарегистрирован на локальном компьютере - PullRequest
363 голосов
/ 11 июля 2011

Я пытаюсь получить данные из файла Excel по событию нажатия кнопки.Моя строка подключения:

 string connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\source\\SiteCore65\\Individual-Data.xls;Extended Properties=Excel 8.0;";

Когда я нажимаю на кнопку, появляется следующая ошибка:

Поставщик «Microsoft.ACE.OLEDB.12.0» не зарегистрированна локальной машине.

Понятия не имею, как это исправить.Моя операционная система - Windows 7.

Ответы [ 33 ]

1 голос
/ 18 марта 2015

также можете попробовать эти шаги

В SQL Server 1. Откройте одну базу данных 2.Выберите опцию «Обнаружение сервера». 3.Нажмите «Связанные серверы». 4.Нажмите «Поставщики». 5.Нажмите Rigth в «Microsoft.ACE.OLEDB.12.0». 6.Отключите все опции и закройте

1 голос
/ 23 октября 2015

У меня была та же проблема, но в этом случае microsoft-ace-oledb-12-0-provider уже был установлен на моей машине и нормально работал для других приложений, разработанных.

Разница между этим приложением и тем, с которым у меня возникла проблема, заключалась в том, что старые приложения работали на " Local IIS ", тогда как одно с ошибкой было на " IIS Express ( работает из Visual Studio "). Итак, что я сделал -

  1. Щелкните правой кнопкой мыши по имени проекта.
  2. Перейти к свойствам
  3. Перейти к веб-вкладке справа.
  4. В разделе Серверы выберите Локальный IIS и нажмите кнопку Создать виртуальный каталог.
  5. Запустите приложение еще раз, и оно заработало.
1 голос
/ 07 августа 2014

Я следовал инструкциям других;установка этого патча, установка этого патча, а также Microsoft Access Database Engine 2010.

Моя проблема заключалась в том, что я использую одну и ту же библиотеку (linq2sql) на 2 сайтах на моей машине;1 работает, а 1 нет.

В конце концов я обнаружил, что мне пришлось «включить 32-битные приложения» в расширенных настройках приложения для моего нерабочего сайта.

Все работает нормальноТеперь.

1 голос
/ 09 мая 2017

Если вы получаете эту ошибку при попытке использовать ACE из приложения ASP.NET, наиболее вероятной причиной является то, что вы установили одну из 32-битных версий.По умолчанию IIS в 64-разрядной операционной системе будет запускать приложения в 64-разрядном рабочем процессе.64-разрядные процессы не могут загружать 32-разрядные библиотеки DLL.Когда сделан вызов поставщику ACE, 64-битный процесс попытается найти 64-битную DLL.Если он не существует, вы получите сообщение об ошибке, которое привело вас сюда.

В этом случае у вас есть два варианта.Во-первых, вы можете установить 64-битную версию 2010 года.Если у вас установлена ​​32-битная версия 2007 года, вы можете просто установить вместе с ней 64-битную версию 2010 года.Если у вас установлена ​​32-разрядная версия 2010, вам нужно удалить ее, а вместо этого загрузить и установить 64-разрядную версию 2010.Нельзя одновременно устанавливать 32- и 64-разрядные версии поставщика 2010 года.Если вы выполняете установку на своем компьютере разработки, вы также можете быть ограничены разрядностью любых существующих установок Office.

Второй вариант - изменить пул приложений в IIS, чтобы включить 32-разрядные приложения.,Если вы используете полную версию IIS, вы можете использовать для этого инструмент управления (Панель управления »Администрирование» Диспетчер служб IIS).

Для получения дополнительной информации см. Ниже ссылка

1 голос
/ 19 мая 2015

1.) Проверьте строку подключения с помощью ConnectionStrings.com .

2.) Убедитесь, что у вас установлен правильный движок базы данных. Это были два движка базы данных, которые помогли мне.

Microsoft Access Database Engine 2010, распространяемый

2007 Драйвер системы Office: компоненты для подключения к данным

3.) Возможно, проблема в том, что вашей целевой платформой сборки является «Любой ЦП», возможно, это должен быть «X86» (Свойства, Сборка, Платформа Target).

1 голос
/ 18 апреля 2016

На моем компьютере уже установлена ​​ распространяемая база данных Microsoft Access Engine 2010 , но по-прежнему получена ошибка Microsoft ACE OLEDB Provider .

Затем я вспомнил, что недавно обновился до Office 2016, поэтому, возможно, мне следует попробовать переустановить Microsoft Access Database Engine 2010 Redistributable . И это решило проблему на моей машине.

Итак, если вы обновили MS Office до другой версии или даже восстановили / переустановили MS Office, попробуйте переустановить Microsoft Access Database Engine 2010 Reistributable , прежде чем тратить время на поиск других исправлений. Удачи!

1 голос
/ 30 августа 2015

Не забудьте установить AccessDatabaseEngine на сервер для веб-приложения.

1 голос
/ 27 июня 2018

Это сработало для меня прямо сейчас.

  1. Посетите эту страницу , затем загрузите соответствующий пакет для ваш компьютер (AccessDatabaseEngine.exe или AccessDatabaseEngine_X64.exe)
  2. Установите это.
  3. Наслаждайся ... Твои коды работают ...

Но для вашего пакета приложений вы можете использовать любое из следующих решений:

  1. Перейдите в «C: \ Program Files (x86) \ Common Files \ microsoft shared» или "C: \ Program Files \ Common Files \ Microsoft Shared" и поместите Каталог "OFFICE14" в том же месте, где находится файл пакета.

Или

  1. Прикрепите два проекта (в пункте 1) в вашем установочном пакете.
0 голосов
/ 02 ноября 2017

Как я решил это на разных компьютерах:

У меня есть 32-битная машина Windows 7 с Visual Studio 2012, у которой нет базы данных Access, потому что у меня нет Office 2010. Я скопировал тот же источник, что и у меня на 64-битной машине Windows 7.

Итак, я установил AccessDatabaseEngine на этот 32-битный компьютер с Windows 7 после загрузки его в соответствии с приведенными выше рекомендациями других здесь, и все работало нормально.

У меня все еще была проблема на моей 64-битной машине с Windows 7, на которой уже есть Office 2010, в которой уже есть Access 2010. Я решил эту проблему на этом компьютере, зайдя в ПРОЕКТ, выбрав Свойства, и на целевой платформе был Любой ЦП. Я проверил Prefer 32-битный. Перекомпилировано / построено, и поставщик Microsoft.ACE.OLEDB.12.0 'не зарегистрирован на локальном компьютере. Сообщение пропало.

0 голосов
/ 05 января 2016
  • Я столкнулся с той же проблемой в течение нескольких дней.Я установил драйверы OLEDB для 64-битных, опробовал 32-битные, которые также доступны на веб-сайте Microsoft.
  • Я попытался переустановить офисную 64-битную версию, и как-то не получилось.Попытка Разрешить 32-битное приложение в пуле IIS true.
  • Попытка Изменение среды проекта на X86, AnyMachine, Mixed.И почти перепробовал все патчи, которые я смог найти в интернете.Но все решения меня разочаровали.
  • Хотя я наконец узнал, что провайдер, который мы скачивали, был последним и тоже не работал с ним.
  • Я удалил его и установил драйверы oledb 14.0.7015.1000 . У меня нет ссылки на нее, так как я получил ее из ресурсов компании, возможно, вам придется зайти в Google, но она работает.Я пришел на эту СКАЧАТЬ ССЫЛКУ от Microsoft, и она тоже работала ... однако это версия 14.0.6119.5000 но она работала.
...