C# ';微软.ACE.OLEDB.12.0';提供程序未在本地计算机(服务器)上注册
我知道这个问题有十几个答案和帖子,但没有一个适合我 我有我的MVC5应用程序,我将它部署到IIS7.5服务器上。应用程序运行良好,一切正常,直到我使用ACE.OLEDB进行操作 我得到了这个错误:C# ';微软.ACE.OLEDB.12.0';提供程序未在本地计算机(服务器)上注册,c#,asp.net-mvc,excel,deployment,oledb,C#,Asp.net Mvc,Excel,Deployment,Oledb,我知道这个问题有十几个答案和帖子,但没有一个适合我 我有我的MVC5应用程序,我将它部署到IIS7.5服务器上。应用程序运行良好,一切正常,直到我使用ACE.OLEDB进行操作 我得到了这个错误: [无效操作异常:未在本地计算机上注册'Microsoft.ACE.OLEDB.12.0'提供程序。] System.Data.OleDb.OleDbServicesWrapper.GetDataSource(OleDbConnectionString构造、DataSourceWrapper和datas
[无效操作异常:未在本地计算机上注册'Microsoft.ACE.OLEDB.12.0'提供程序。]
System.Data.OleDb.OleDbServicesWrapper.GetDataSource(OleDbConnectionString构造、DataSourceWrapper和datasrcWrapper)+1785474
System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr,OleDbConnection connection)+1802032
System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions选项、DbConnectionPoolKey poolKey、Object poolGroupProviderInfo、DbConnectionPool池、DbConnectionOwningObject)+100
System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection-owningConnection、DbConnectionPoolGroup-poolGroup、DbConnectionOptions-userOptions)+61
System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection所有者连接、TaskCompletionSource`1重试、DbConnectionOptions用户选项、DbConnectionInternal oldConnection、DbConnectionInternal和connection)+964
System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnectionOuterConnection,DbConnectionFactory connectionFactory,TaskCompletionSource`1重试,DbConnectionOptions用户选项)+6785863
System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection,DbConnectionFactory connectionFactory)+27
System.Data.OleDb.OleDbConnection.Open()+47
c:\Users\alex.chakhau\Documents\Visual Studio 2013\Projects\QuickbookUploadFromElite3e\QuickbookUploadFromElite3e\QuickbookUploadFromElite3e\Controllers\HomeController.cs:75中的QuickbookUploadFromElite3e.Controllers.HomeController.Matters(字符串文件路径)
lambda_方法(闭包、控制器基、对象[])+127
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext ControllerContext,IDictionary`2参数)+242
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext ControllerContext,ActionDescriptor ActionDescriptor,IDictionary`2参数)+39
System.Web.Mvc.Async.AsyncControllerActionInvoker.b_u36(IAsyncResult asyncResult,ActionInvoking innerInvokeState)+12
System.Web.Mvc.Async.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult)+139
System.Web.Mvc.Async.AsyncInvocationWithFilters.b__3c()+112
System.Web.Mvc.Async.c__显示类45.b_3e()+452
System.Web.Mvc.Async.c__显示类30.b__2f(IAsyncResult asyncResult)+15
System.Web.Mvc.Async.c__显示类28.b__19()+37
System.Web.Mvc.Async.c__显示Class1E.b__1b(IAsyncResult asyncResult)+241
System.Web.Mvc.Controller.b_u1d(IAsyncResult asyncResult,ExecuteCorerate innerState)+29
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult)+111
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)+53
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult)+19
System.Web.Mvc.MvcHandler.b_uu4(IAsyncResult asyncResult,ProcessRequestState innerState)+51
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult)+111
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+606
System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,布尔值&同步完成)+288
我在网上找到了一些答案,我做了以下工作:
有什么建议吗?可能是X86或X64的问题 您需要安装它: 2007办公系统驱动程序:数据连接组件。() 然后确保: 构建->配置管理器->活动解决方案平台->x64 没有
Microsoft.ACE.OLEDB.4.0
有
Microsoft.ACE.OLEDB.12.0
或
当然,有关32位和64位的常规规则应谨慎使用
因此,您需要安装Access数据库引擎可再发行。但是,根据构建应用程序所选择的目标平台,您应该小心下载正确的版本(32位或64位)。(任意CPU、x64、x86)
当然,如果您的服务器安装了Office,那么您已经安装了ACE,但它可能用于不同的平台,并且您的应用程序需要针对相同的平台进行编译。(例如,Office 32位然后ACE 32位,您需要为x86编译应用程序)这可能是位问题,但与构建属性中的位无关。 ACE驱动程序有两个版本:x86和x64
(当然,关于使用正确的驱动程序名也适用。)您只需更改配置管理器即可 步骤:
Microsoft.JET.OLEDB.4.0