未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序

获取数据错误!
未将对象引用设置到对象的实例。
文件读取错误!
未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序。

解决之道:

1方案:

 

安装MS的数据连接组件AccessDatabaseEngine(或安装office 2007客户端,如果装的是高版本可能依然可能会有问题),并将当前承载通过oledb提供程序去访问Excel2007Web application对应的应用程序池“启用兼容32位应用程序”,

在对应的 IIS 应用程序池中,“设置应用程序池默认属性”右击/“高级设置”/"启用32位应用程序",设置为 true

 

2方案:

 

安装AccessDatabaseEngine_64版并且要安装64位版的office 2010客户端

 

3方案:

若目标应用程序不能将应用程序池"启用兼容32位应用程序",只能在64位应用程序池下运行,且又想有上传Excel的功能,可按如下方式:

a、创建Asp.net WebService application 程序,并通过WebService来连接访问Excel

b、将此webservice application的应用程序池按方案1方式设置“启用兼容32位应用程序”。

c、在目标应用程序中添加此webservice

原文地址:https://www.cnblogs.com/PLifeCopyDown/p/3040374.html