Сведения об исключении: System.InvalidOperationException: поставщик «Microsoft.ACE.OLEDB.12.0» не зарегистрирован на локальном компьютере

1

Я разрабатываю ASP-сайт, который использует базу данных. Он работает в автономном режиме, когда я его тестирую, но как только я загружу его на свою учетную запись fasthosts, я получаю следующую ошибку при попытке запустить ее:

Сведения об исключении: System.InvalidOperationException: поставщик "Microsoft.ACE.OLEDB.12.0" не зарегистрирован на локальном компьютере.

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

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ 
ConnectionStrings:ThreadString %>" ProviderName="<%$     
ConnectionStrings:ThreadString.ProviderName %>" SelectCommand="SELECT * FROM [Thread] 
WHERE ([rank] &lt;= ?) ORDER BY [rank]">

Файл web.config:

<add name="ThreadString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data  
Source=|DataDirectory|\Database.accdb"  providerName="System.Data.OleDb" />

Есть идеи, почему это происходит? заранее спасибо

  • 0
    Вы установили процесс IIS для разрешения 32-битных программ?
  • 0
    Извините .. Я довольно новичок в этом. Как мне это сделать?
Теги:
database
asp-classic
hosting

2 ответа

2
Лучший ответ

Для подключения к файлу ACCDB (формат Access 2007) требуется драйвер ACE.OLEDB.12.0. Этот драйвер необходимо установить на ISP-машине.
(Вероятно, причина, по которой они задают вам другой план)

Однако вы можете изменить формат своего файла на Access 2003, который использует Microsoft.Jet.OLEDB.4.0 и этот драйвер не нужно устанавливать на ISP-машине.

Это документ на сайте Microsoft, в котором объясняется, как это сделать.
Сохранить базу данных Access 2010 в более раннем формате файла

Но есть еще одна проблема. Этот драйвер имеет только 32 бит, поэтому ваш интернет-провайдер должен позволить 32-битовому драйверу работать в хостинговом процессе вашего сайта (если он использует 64-разрядную ОС). Как это делается, зависит от ваших инструментов и интерфейса ISP и насколько они позволяют вам персонализировать свои услуги.

Обычно на локальном сервере IIS вы выполняете следующие шаги

  • Перейти к диспетчеру IIS
  • Щелкните правой кнопкой мыши на DefaultAppPool (или пул приложений)
  • Выберите Дополнительные настройки
  • Установите для параметра "Включить 32-разрядные приложения" значение "Истина".
  • 0
    очень информативно, спасибо. Я изменил драйвер, но теперь я получаю новую ошибку Сведения об исключении: System.Data.OleDb.OleDbException: Нераспознанный формат базы данных «[расположение файла]». Я сделал базу данных в доступе 2010
  • 0
    Изменили ли вы формат файла ACCDB на MDB, как описано в ссылке выше? Переименуйте также файл, чтобы иметь расширение MDB (Access 2003)
Показать ещё 2 комментария
0

Попробуйте выполнить следующие действия.

  1. Щелкните правой кнопкой мыши приложение и выберите свойства.
  2. Перейдите в раздел "Сборка".
  3. Выберите цель платформы для любого процессора
  4. Сохраните приложение.

строить и запускать.

  • 0
    платформа проекта уже ориентирована на любой процессор
  • 0
    какую базу данных вы используете в Excel или Access ???
Показать ещё 7 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню