#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