NaniCh Ответов: 1

Получение поставщика "microsoft.ace.oledb.12.0" не зарегистрирован на локальном компьютере ошибка


Привет Эксперты,
Я получаю "поставщик" Microsoft.ACE.OLEDB.12.0 " не зарегистрирован на локальном компьютере." Ошибка при импорте листа excel с помощью элемента управления загрузкой файлов. Мне нужно вставить данные excel в мою базу данных. Я использую версию visual studio 2013. Но я использую сервер Windows 2008 R2. Когда я запускаю код в своем локальном коде, он работает нормально. Но когда я запускаю код через сервер, я получаю вышеописанную ошибку. Я попытался "включить 32-разрядные приложения = true" в предварительных настройках пула приложений. Также я попытался установить [Драйвер Системы Office 2007: Компоненты Подключения К Данным] но все равно я получаю ту же ошибку. Может ли кто-нибудь подсказать мне, как это исправить?
Вот мой код

Что я уже пробовал:

<pre>ArrayList CategoryList = new ArrayList();
                    menuupload.SaveAs(Server.MapPath(menuupload.FileName));
                    string fileName = menuupload.ResolveClientUrl(menuupload.PostedFile.FileName);
                    DataTable dtExcel = new DataTable();
                    string SourceConstr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath(fileName) + ";Extended Properties= 'Excel 8.0;HDR=Yes;IMEX=1'";
                    OleDbConnection con = new OleDbConnection(SourceConstr);
                    string query = "Select * from [Items$]";
                    OleDbDataAdapter data = new OleDbDataAdapter(query, con);
                    data.Fill(dtExcel);

ZurdoDev

Сервер, должно быть, пропустил этот файл. Убедитесь, что он находится в вашей папке BIN или установлен и в GAC.

NaniCh

Спасибо за ваш ответ, Могу я узнать, какой файл нам нужен в папке Bin?

ZurdoDev

Библиотека DLL, имеющая Microsoft.ACE.OLEDB.12.0. посмотрите в своих ссылках, чтобы увидеть, где она находится.

Maciej Los

Попробуйте установить компоненты подключения MS Office 2010 для Win x86

1 Ответов

Рейтинг:
0

Dave Kreskowiak

Вы должны установить среду выполнения Access на сервере. Получить его от здесь[^].

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

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

Если ваше приложение скомпилировано AnyCPU и работает на 64-разрядном сервере, вам необходимо установить 64-разрядную среду выполнения.

Если ваше приложение скомпилировано x64, оно должно работать на 64-разрядном сервере, и вы должны установить 64-разрядную среду выполнения.


Maciej Los

5!