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

在网站中使用了Excel组件,网站发布部署后,在所有使用到Excel组件的相关功能点上,都出现了如下错误:

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

在网上查找了资料后,得到了解决.

基本的解决就是:

1、在服务器上要安装office组件

2、要安装office的数据连接组件(AccessDatabaseEngine)

 

说明:我安装了office2010的数据链接组件后,还是没有解决这个问题,但我网站中引用了的Excel组件版本的确是14.0,最终是把

Microsoft.ACE.OLEDB.14.0 修改成了 Microsoft.ACE.OLEDB.12.0

才终于解决了这个问题,具体原因自己也不太清楚。

=====================================================================================

查找到的相关资料如下:

http://social.msdn.microsoft.com/Forums/zh-CN/whatforum/thread/7c6d2c4a-feff-4517-af63-c1509ddae3f4

http://www.cnblogs.com/netcai/archive/2011/03/24/1993329.html

windows 2008 r2 x64版本的操作系统中通过oledb提供程序连接访问Excel2010/2007时,程序会报如下错误:

System.InvalidOperationException: The 'Microsoft.ACE.OLEDB.14.0' provider is not registered on the local machine.

此查找资料认为产生此种错误的原因有两种:

1、在Windows2008r2 x64 OS,在没有装Office2010客户端时,或没有安装“数据连接组件”

2、当前Web应用程序的应用程序池是64位的,而提供连接Excelprovider不支持当前64版本的操作系统

 

解决方法:

1方案:

安装MS的数据连接组件AccessDatabaseEngine(或安装office 2010客户端),并将当前承载通过oledb提供程序去访问Excel2010Web application对应的应用程序池“启用兼容32位应用程序”,

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

 

2方案:

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

下载地址:http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&FamilyID=c06b8369-60dd-4b64-a44b-84b371ede16d

 

3方案:

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

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

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

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

posted on 2011-03-25 14:56  凡夫·俗子  阅读(10019)  评论(0编辑  收藏  举报