Подтвердить что ты не робот

Поставщик "Microsoft.ACE.OLEDB.12.0" не зарегистрирован на локальном компьютере.

каждая вещь работает нормально локально, но эта ошибка возникает, когда я ее публикую:

 The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.

и трассировка стека

[InvalidOperationException: The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.]
System.Data.OleDb.OleDbServicesWrapper.GetDataSource(OleDbConnectionString constr, DataSourceWrapper& datasrcWrapper) +1027372
System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) +337
System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) +86
System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup) +31
System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +76
System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +126
System.Data.OleDb.OleDbConnection.Open() +43
System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +123
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +319
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable) +92
System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +1618
System.Web.UI.WebControls.ListControl.OnDataBinding(EventArgs e) +97
System.Web.UI.WebControls.ListControl.PerformSelect() +34
System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +74
System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +66
System.Web.UI.WebControls.ListControl.OnPreRender(EventArgs e) +29
System.Web.UI.Control.PreRenderRecursiveInternal() +103
System.Web.UI.Control.PreRenderRecursiveInternal() +175
System.Web.UI.Control.PreRenderRecursiveInternal() +175
System.Web.UI.Control.PreRenderRecursiveInternal() +175
System.Web.UI.Control.PreRenderRecursiveInternal() +175
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2496

Я использую базу данных MS access 2007 и эту строку подключения в web.config

        <add name="ConnectionString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\OmanLegalDB.accdb;Persist Security Info=True" providerName="System.Data.OleDb"/>

любые предложения по этой проблеме

4b9b3361

Ответ 1

Для версии 12.0 вам нужно установить MDAC 2010 из здесь.

Это должно быть сделано на сервере, на котором вы публикуете свое приложение. Вам нужно установить версию x86, если целевой компьютер 32-разрядный или версия x64, если целевой компьютер равен 64 бит, а ваше приложение построено с конфигурацией Any CPU.

Ответ 2

Как предлагается в здесь Вам нужно изменить платформу решений с Any CPU "на" x86 ".

Ответ 3

Строка подключения правильная, поэтому эта ошибка может быть вызвана следующей причиной:

  • Если ваш офис 32-битный на 64-битной машине, а установленный драйвер MDAC - 64 бит. В этом случае вам потребуется установить 32-битный драйвер MDAC для соответствия 32-битным двоичным файлам Office.

В этом post содержится подробная информация об устранении неполадок.