网站中使用了Excel组件问题 Microsoft.ACE.OLEDB.14.0' provider is not registered on the local machine
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测试数据/Forums/zh-CN/whatforum/thread/7c6d2c4a-feff-4517-af63-c1509ddae3f4
http://HdhCmsTestcnblogs测试数据/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位的,而提供连接 Excel 的 provider 不支持当前 64 版本的操作系统
解决方法:
1方案:
安装MS的数据连接组件AccessDatabaseEngine(或安装 office 2010 客户端),并将当前承载通过 oledb 提供程序去访问 Excel2010 的 Web application 对应的应用程序池“启用兼容 32 位应用程序”,
在对应的 IIS 应用程序池中,“设置应用程序池默认属性”右击 / “高级设置” /" 启用 32 位应用程序 " ,设置为 true 。
2方案:
安装AccessDatabaseEngine_64版并且要安装64位版的office 2010客户端
下载地址: http://HdhCmsTestmicrosoft测试数据/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 。
作者: Leo_wl
出处: http://HdhCmsTestcnblogs测试数据/Leo_wl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息查看更多关于网站中使用了Excel组件问题 Microsoft.ACE.OLEDB.14.0' prov的详细内容...