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

#c# #web-services #ms-access #iis #oledb

#c# #веб-службы #ms-access #iis #oledb

Вопрос:

Когда я запускаю свой веб-сервис через Visual Studio 2012, он работает корректно, но всякий раз, когда моя программа выполняется IIS, у меня возникает ошибка, подобная этой.

    System.InvalidOperationException: The amp;#39;Microsoft.Jet.OLEDB.4.0amp;#39; provider is not registered on the local machine.
       at System.Data.OleDb.OleDbServicesWrapper.GetDataSource(OleDbConnectionString constr, DataSourceWrapperamp; datasrcWrapper)
       at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
       at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
       at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions)
       at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternalamp; connection)
       at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
       at System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
       at System.Data.OleDb.OleDbConnection.Open()
       at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
       at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
       at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable)
       at System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments)
       at System.Web.UI.WebControls.SqlDataSource.Select(DataSourceSelectArguments arguments)
  

Кроме того, я не использую OleDB-соединение в своем коде, я использую Access DataSource, чтобы мой код не включал строку подключения.

Как я могу решить эту проблему. Заранее спасибо.

Комментарии:

1. Если ваш целевой процессор не X86, попробуйте установить его на X86.

Ответ №1:

Я решил свою проблему.

Диспетчер ISS -> Выберите пул приложений -> Щелкните правой кнопкой мыши ваше приложение -> Дополнительные настройки -> Включить 32-разрядное приложение установить значение True