Поставщик microsoft jet oledb 4 0 не зарегистрирован на локальном компьютере

Обновлено: 07.07.2024

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

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

Я нашел решение этой проблемы. Проблема, которую я описал в своем вопросе, возникла в основном из-за несовместимости драйвера Microsoft.Jet.OLEDB.4.0 в 64-битной ОС.

Поэтому, если мы используем драйвер Microsoft.Jet.OLEDB.4.0 на 64-битном сервере, мы должны принудительно встроить наше приложение в 32-битном режиме (это ответ, который я нашел, когда провел расширенный поиск этой известной проблемы) и это приводит к поломке другой части моего кода.

К счастью, теперь Microsoft выпустила 64-разрядный совместимый драйвер Office 2010, который можно использовать вместо традиционного драйвера Microsoft.Jet.OLEDB.4.0. Он работает как на 32-битных, так и на 64-битных серверах. Я использовал его для работы с файлами Excel, и он отлично работал в обеих средах. Но этот драйвер в бета-версии.

Если проблема сохраняется в ASP.NET, все, что мне нужно было сделать, это изменить значение параметра "Включить 32-разрядные приложения" на "Истина" в разделе "Дополнительные параметры для пула приложений".

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

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

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

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

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

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

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

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

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


1.-Открыть IIS
2. -Измените appPool на Дополнительные настройки
3.-true, чтобы включить 32-битное приложение.

ps.Я поменял Configuration Manager на X86 на платформе Active Solution

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

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

Project---> Properties--->Build--->Target Framework---> X64

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

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


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

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

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

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

var myConnectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; Источник данных =; Информация о сохранении безопасности =True;Jet OLEDB: Пароль базы данных =;",gisdbPath);

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

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

Project ---> Properties ---> Build ---> Target Framework ---> X64

Project---> Properties--->Build--->Target Framework---> X86

Изменение в дополнительных настройках пула приложений IIS. Включение 32-разрядного приложения.

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

Затем установите для целевой платформы VS значение x86.

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

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

Тем не менее, вы можете переключиться на 32-битный проект в версии Express (я не пробовал и у меня больше нет установленного 2008)

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

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

cscript% SYSTEMDRIVE% \ inetpub \ adminscripts \ adsutil.vbs SET W3SVC / AppPools / Enable32bitAppOnWin64 1

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

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

Я заменяю новым провайдером, как это ниже:

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

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

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

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

спросил(а) 2010-01-02T16:52:00+03:00 11 лет, 10 месяцев назад

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

var myConnectionString = string.Format( "Provider = Microsoft.Jet.OLEDB.4.0; Источник данных = ; Persist Security Info = True; Jet OLEDB: Database Password =;", gisdbPath);

var myConnectionString = string.Format( "Provider = Microsoft.Jet.OLEDB.4.0; Mode = Share Deny None; Источник данных = ; идентификатор пользователя = Admin; пароль =;", gisdbPath);

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

ответил(а) 2016-03-17T06:25:00+03:00 5 лет, 8 месяцев назад

Я нашел решение этой проблемы. Проблема, которую я описал в моем вопросе, возникла в основном из-за несовместимости драйвера Microsoft.Jet.OLEDB.4.0 в 64-разрядной ОС.

Итак, если мы используем драйвер Microsoft.Jet.OLEDB.4.0 на 64-битном сервере, нам нужно заставить наше приложение встраиваться в 32-битный режим (это ответ, который я нашел, когда я сделал обширный поиск этого известная проблема), и это приводит к поломке другой части моего кода.

К счастью, теперь Microsoft выпустила 64-разрядный совместимый 2010 System System Driver, который можно использовать в качестве замены традиционного драйвера Microsoft.Jet.OLEDB.4.0. Он работает как на 32-битных, так и на 64-битных серверах. Я использовал его для обработки файлов Excel, и он отлично работал у меня в обеих средах. Но этот драйвер находится в BETA.

ответил(а) 2010-01-02T19:13:00+03:00 11 лет, 10 месяцев назад

Если проблема сохраняется в ASP.NET, все, что мне нужно было сделать, это изменить параметр "Включить 32-разрядные приложения" на "Истина" в "Дополнительные параметры для пула приложений".

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

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

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

ответил(а) 2013-04-20T09:28:00+04:00 8 лет, 7 месяцев назад

2. - Измените appPool на Дополнительные параметры

3.-true для включить 32-битное приложение.

ps.I изменил Configuration Manager на X86 на платформе активных решений

ответил(а) 2012-06-07T01:57:00+04:00 9 лет, 5 месяцев назад

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

Если расширение файла - 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-разрядную ОС. Если вы уже установили бит Office 32, вам нужно запустить драйвер из cmd с аргументом /passive. Этот хак работает только до Office 2013, Microsoft остановила это обходное решение от Office 2016 для драйверов Microsoft.ACE.OLEDB.16.0.

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

ответил(а) 2016-03-11T12:11:00+03:00 5 лет, 8 месяцев назад

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

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

ответил(а) 2016-12-08T14:30:00+03:00 4 года, 11 месяцев назад

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

ответил(а) 2012-02-07T16:43:00+04:00 9 лет, 9 месяцев назад

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

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

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

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

21 ответ

Я нашел решение этой проблемы. Проблема, которую я описал в моем вопросе, возникла в основном из-за несовместимости драйвера Microsoft.Jet.OLEDB.4.0 в 64-разрядной ОС.

Итак, если мы используем драйвер Microsoft.Jet.OLEDB.4.0 на 64-битном сервере, нам нужно заставить наше приложение встраиваться в 32-битный режим (это ответ, который я нашел, когда я сделал обширный поиск этого известная проблема), и это приводит к поломке другой части моего кода.

К счастью, теперь Microsoft выпустила 64-разрядный совместимый 2010 System System Driver, который можно использовать в качестве замены традиционного драйвера Microsoft.Jet.OLEDB.4.0. Он работает как на 32-битных, так и на 64-битных серверах. Я использовал его для обработки файлов Excel, и он отлично работал у меня в обеих средах. Но этот драйвер находится в BETA.

Также обратите особое внимание на инструкции по этой ссылке :) Я была такая же проблема. Я изменил конфигурацию приложения на x86, потом все заработало! Также мне пришлось изменить строку подключения с использованием Microsoft.Jet.OLEDB.4.0 на Microsoft.ACE.OLEDB.12.0 нубский вопрос: могу ли я распространять этот драйвер как "в моем приложении" или каждый пользователь, который хочет использовать мое приложение, должен установить его вручную? Ответ на этот вопрос дается последним словом в заголовке статьи, «Microsoft Access Database Engine 2010 Redistributable». По определению, распространяемый компонент может распространяться вместе с вашим приложением, если вы добавляете значительную ценность. x86 создавал проблемы в моей 64-битной среде. Поэтому я переключился на Смешанные платформы, которые сделали свое дело. Спасибо за помощь! Как включить драйвер в мое приложение, чтобы не требовалось устанавливать его на пользовательский компьютер?

Если проблема сохраняется в ASP.NET, все, что мне нужно было сделать, это изменить параметр "Включить 32-разрядные приложения" на "Истина" в "Дополнительные параметры для пула приложений".

Я использовал 64-битный ODBC, и это изменение начало приводить к ошибке базы данных. Я исправил это все же. В случае, если кто-то тоже столкнется с этим, вам придется установить 32-битные драйверы ODBC, а затем создать в нем свой DSN. Сейчас вполне возможно сделать это полностью в 64-битном коде. Установите распространяемый файл, указанный в ответе neo , затем используйте строку поставщика, предложенную в ответе Iqbal . Затем проголосуйте за оба этих ответа. Это оно! Это устранило проблему для меня на Windows Server 2008 R2 после установки 32-битного Access DB Engine Redist . Недостатком является то, что пул будет работать в 32-битном режиме. Вместо этого мы переключимся на ACE, чтобы избежать этого.

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

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

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

Это оно! Для 64-разрядного сервера установите распространяемый пакет, связанный с neo (очевидно, 64-разрядный вариант), а затем измените поставщика, как указано в этом ответе, тогда он будет работать. Вы правы Ромкинс. Я уже говорил, что применил нео решение, затем сменил провайдера. Но благодаря вашему комментарию это становится более понятным. Большое спасибо romkyns заменил Microsoft.Jet.OLEDB.4.0 на Microsoft.ACE.OLEDB.12.0; в app.config и все заработало.

1. -Открыть IIS
2. - Измените appPool на Дополнительные параметры
3.-true для включить 32-битное приложение.

ps.I изменил Configuration Manager на X86 на платформе активных решений

Это заставляет ваше приложение работать в 32-битном режиме. Вам нужно отключить эту настройку, если вы хотите избежать барьера 4 ГБ.

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

Если расширение файла - 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-разрядную ОС. Если вы уже установили бит Office 32, вам нужно запустить драйвер из cmd с аргументом /passive. Этот хак работает только до Office 2013, Microsoft остановила это обходное решение от Office 2016 для драйверов Microsoft.ACE.OLEDB.16.0.

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

Спасибо за ваш ответ, однако я использую VS2015 на Windows 10 и X64. Когда я изменил конфигурацию проекта с AnyCPU на X86, проблема ушла. Мне не нужно было устанавливать никаких дополнительных драйверов. @NoChance Я думаю, что вы уже установили Office 64 бит на свою машину, и он уже содержит драйверы Microsoft.ACE.OLEDB.12.0.

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

Изображение 106778

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

как изменить эту конфигурацию? Я создал проект типа веб-сайта

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

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

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

Установлена ​​64-разрядная версия Microsoft Access Database Engine 2010 Распространяемый, как было предложено neo

Изменен мой провайдер на Microsoft.ACE.OLEDB.12.0

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

Изображение 106779

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

var myConnectionString = string.Format( "Provider = Microsoft.Jet.OLEDB.4.0; Источник данных = ; Persist Security Info = True; Jet OLEDB: Database Password =;", gisdbPath);

var myConnectionString = string.Format( "Provider = Microsoft.Jet.OLEDB.4.0; Mode = Share Deny None; Источник данных = ; идентификатор пользователя = Admin; пароль =;", gisdbPath);

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

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

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

Проект --- > Свойства --- > Строить --- > Целевая структура --- > X86

Изменения в дополнительных настройках пула приложений IIS. Необходимое 32-разрядное приложение

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

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

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

Я заменяю новый поставщик следующим образом:

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

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

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

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

Я нашел решение этой проблемы. Проблема, которую я описал в моем вопросе, возникла в основном из-за несовместимости драйвера Microsoft.Jet.OLEDB.4.0 в 64-разрядной ОС.

Итак, если мы используем драйвер Microsoft.Jet.OLEDB.4.0 на 64-битном сервере, нам нужно заставить наше приложение встраиваться в 32-битный режим (это ответ, который я нашел, когда я сделал обширный поиск этого известная проблема), и это приводит к поломке другой части моего кода.

К счастью, теперь Microsoft выпустила 64-разрядный совместимый 2010 System System Driver, который можно использовать в качестве замены традиционного драйвера Microsoft.Jet.OLEDB.4.0. Он работает как на 32-битных, так и на 64-битных серверах. Я использовал его для обработки файлов Excel, и он отлично работал у меня в обеих средах. Но этот драйвер находится в BETA.

Если проблема сохраняется в ASP.NET, все, что мне нужно было сделать, это изменить параметр "Включить 32-разрядные приложения" на "Истина" в "Дополнительные параметры для пула приложений".

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

Я применил ответ 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-битной ОС. Если вы уже установили Office 32 bit, вам нужно запустить драйвер из cmd с аргументом /passive. Этот хак работает только до Office 2013, Microsoft прекратила этот обходной путь из Office 2016 для драйверов Microsoft.ACE.OLEDB.16.0.

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

1. -Открыть IIS
2. - Измените appPool на Дополнительные параметры
3.-true для включить 32-битное приложение.

ps.I изменил Configuration Manager на X86 на платформе активных решений

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

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

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

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

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

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

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

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

Установлена ​​64-разрядная версия Microsoft Access Database Engine 2010 Распространяемый, как было предложено neo

Изменен мой провайдер на Microsoft.ACE.OLEDB.12.0

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

Изменения в дополнительных настройках пула приложений IIS. Необходимое 32-разрядное приложение

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

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

Проект --- > Свойства --- > Строить --- > Целевая структура --- > X86

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

var myConnectionString = string.Format( "Provider = Microsoft.Jet.OLEDB.4.0; Источник данных = ; Persist Security Info = True; Jet OLEDB: Database Password =;", gisdbPath);

var myConnectionString = string.Format( "Provider = Microsoft.Jet.OLEDB.4.0; Mode = Share Deny None; Источник данных = ; идентификатор пользователя = Admin; пароль =;", gisdbPath);

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

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

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

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

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

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

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

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

cscript% SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1

Я получал такое же исключение во время запуска "Импорт и экспорт данных SQL Server 2014 (64-разрядный)" на моем Windows 8.1.

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

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

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

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

Я заменяю новый поставщик следующим образом:

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

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

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