Поставщик lcpi ibprovider 3 не зарегистрирован на локальном компьютере

Обновлено: 07.07.2024

Чтобы решить эту проблему, я изменил свойство сборки проекта на X86, чтобы он строился в 32-битном режиме и перестраивал проект на 32-битной машине. Но тот же проект использует другие драйверы БД (DB2, SQL и т. Д.) Для подключения к другим базам данных. Поэтому, когда я снова развернул свое приложение в 64-битной ОС, оно выдает исключение «Попытка загрузить 64-битную сборку на 32-битной платформе».

Я использую драйвер Microsoft.Jet.OLEDB.4.0 для чтения и записи в Excel (.xls)

У меня такая же проблема

Я применил ответ neo , но он не работал, пока я не изменил поставщика на «Provider = Microsoft.ACE.OLEDB.12.0;» в строке подключения.

Надеюсь, это поможет, если кто-то столкнется с той же проблемой.

Я знаю, что это довольно старые вопросы, и многие люди уже ответили на них. но я резюмирую вещи для понимания:

Если расширение файла - xls, а ОС - 32-битная, тогда можно использовать только " Microsoft.Jet.OLEDB.4.0 ". Microsoft не выпустила 64-битную версию этого драйвера.

Если расширение файла - xlsx или ОС - 64-битная, вам необходимо использовать " Microsoft.ACE.OLEDB.12.0 ". Приложение, скомпилированное в 32/64 битном режиме, не влияет на выбор драйвера.

Всегда устанавливайте 64-битный драйвер Microsoft.ACE.OLEDB.12.0 в 64-битной ОС. Если вы уже установили 32-битный Office, вам необходимо запустить драйвер из cmd с аргументом / passive. Этот взлом работает только до Office 2013, Microsoft прекратила этот обходной путь из Office 2016 для драйверов Microsoft.ACE.OLEDB.16.0.

Если приложение скомпилировано с флагом AnyCPU, оно будет искать 64-битные драйверы доступа в 64-битной ОС и 32-битные драйверы доступа в 32-битной ОС.

Если ваше приложение работает на localIIS, вы можете решить эту проблему, включив 32-разрядные приложения в дополнительных настройках AppPool.

enter image description here

1.-Откройте IIS
2.-Измените пул приложений на Расширенные настройки
3.-true для включения 32-разрядного приложения.

Ps. Я изменил Configuration Manager на X86 на платформе Active Solution

Я была такая же проблема. Я изменил конфигурацию приложения на x86 , и все заработало!

Я только что изменил свое свойство проекта на формат x64

Проект ---> Свойства ---> Сборка ---> Целевая платформа ---> X64

Мы столкнулись с этой проблемой в настольном приложении.

Это было решено путем изменения целевой платформы на X86 с любого процессора. Свойства проекта >> Сборка >> Целевая платформа.

enter image description here

Я сделал следующее, и проблема исчезла:

Сменил моего провайдера на Microsoft.ACE.OLEDB.12.0

Готово! Это устанавливает стартовые флаги для вашей программы, чтобы она запускалась в 32-битном режиме WOW64 и, следовательно, могла получить доступ к microsoft.jet.oledb.4.0.

Измените расширенные настройки пула приложений IIS Settings. Включить 32-битное приложение.

Просто измените свойство в зависимости от вашей машины, и все готово :-)

Проект ---> Свойства ---> Сборка ---> Целевая платформа ---> X64

Проект ---> Свойства ---> Сборка ---> Целевая платформа ---> X86

Я изменил строку подключения с

Var myConnectionString = string.Format ("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = ; Persist Security Info = True; Jet OLEDB: Database Password =;", gisdbPath);

Var myConnectionString = string.Format ("Provider = Microsoft.Jet.OLEDB.4.0; Mode = Share Deny None; Data Source = ; user password =;", gisdbPath);

Это работает, потому что я никогда не просил зарегистрировать Microsoft.Jet.OLEDB.4.0.

64-разрядной версии Jet действительно нет - и (по всей видимости) не планируется ее выпускать.

  • но я понятия не имею, как это будет работать, если вам нужно вернуться к Jet для ваших 32-битных приложений.

Однако вы можете переключить проект на 32-разрядную версию в экспресс-версии (я не пробовал и больше не установил 2008 в каком-либо варианте)

Может быть, пришло время полностью отказаться от баз данных Access, прикусить пулю и вместо этого перейти на SQL-сервер?

Я использую VS2013 для Winforms, у меня сработало приведенное ниже решение.

Затем установите VS Target Platform на x86.

В более старых версиях IIS вы не найдете Advance Settings , поэтому для включения Enable 32-bit Applications вам необходимо выполнить следующие команды:

cscript% SYSTEMDRIVE% \ inetpub \ adminscripts \ adsutil.vbs НАБОР W3SVC / AppPools / Enable32bitAppOnWin64 1

Я получал такое же исключение при запуске «SQL Server 2014 Import and Export Data (64-bit)» на моей Windows 8.1.

Чтобы решить эту проблему, я сделал следующее

запустил SQL Server 2014 Import and Export Data (32-bit) вместо 64-bit , и это работает для меня. Я не менял никаких настроек IIS и не устанавливал никакого дополнительного программного обеспечения.

Я знаю, что эта проблема возникает у меня снова и снова, когда я развертываю свое приложение на новом сервере, потому что я использую этот драйвер для подключения к файлу Excel. Вот что я делаю в последнее время.

Этот ниже отлично работает на моей машине разработчика, но на сервере выдает ошибку даже после установки последних драйверов ODBC, что, я думаю, является проблемой, но я решил ее так.

Я заменяю новым поставщиком, как показано ниже:

Но пока я это делаю, вы должны заметить одну вещь. При использовании расширения файла .xlsx и версии Excel 12.0.

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

Перейдите в Пуск-> Выполнить и введите 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

Для Jet не существует 64-битного провайдера. Если вы хотите поддерживать несколько источников БД, включая Jet to Excel, вам понадобится хотя бы эта часть вашего приложения для работы в 32-битном процессе.

Ошибка, возникающая при компиляции для x86, немного странная. Я не понимаю, как в этом случае вы будете ссылаться на 64-битные сборки.

Читайте также: