Microsoft.ACE.OLEDB.12.0 错误 上传读取Excel错误

使用"Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + filePath + ";" + "Extended Properties='Excel 12.0;IMEX=1'"进行连接时,调试程序无报错但服务器部署后在客户端无法使用,报错信息为“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序问题分析:

1.服务器端没有装Office2007客户端,或没有安装“数据连接组件”。  安装缺失的DatabaseEngine

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

右击解决方案,选择属性,打开配置管理器,活动解决方案平台区域选择新建解决方案平台选择X86,重新编译生成程序

打开IIS7的管理器,打开应用程序池区域。在右边的侧边栏,你会看到一个选项,上面写着“设置应用程序池的默认”。点击它,会弹出一个窗口选项。

选中“启用32位应用程序”,然后重新启动应用程序池。

其他方案:

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

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

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

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

屌丝一直很屌
原文地址:https://www.cnblogs.com/xiashenbin/p/3245298.html