使用C#连接Excel2010中得Microsoft.ACE.OLEDB.12.0,未注册问题的解决方案

来源:互联网 发布:如何利用淘宝bug买东西 编辑:程序博客网 时间:2024/06/11 13:55

 

1.系统环境:

开发平台:Visual Studio 2010 旗舰版

操作系统:Window7 旗舰版 64位

Office:Office 2010 专业版 x-64

使用C#连接Excel2010中得Microsoft.ACE.OLEDB.12.0,未注册问题的解决方案。

2.Excel2010连接字符串:

"Provider=Microsoft.ACE.OLEDB.12.0;DataSource="+filePath+";Extended Properties=\"Excel 12.0 Xml;HDR=No;IMEX=1\"";

 

如果大家已经遇到了这个问题,那么试着使用一下的解决方案来测试一下,看有无效果。

 

场景:本机上原来就装着Office2010,后来在项目需要中发现以上未注册问题,又使用远安装程序对Office就重新安装,即选中“从本机上运行全部安装”。但是在程序调试的过程中还是发现以上未注册问题,经过在网上搜索很多,大部分都需要安装AccessDatabaseEngine2010(在微软官方网站上可以下载到),在安装了AccessDatabaseEngine2010-X64后,依旧出现以上的问题,试过了网上的很多办法都不行。

 

以下是我的解决方法,大家可以试试,不行的话,欢迎提出讨论。

在程序正确的情况下进行如下配置:

1.设置VS2010的调试环境,使用本地IIS进行调试,这里需要建立虚拟目录,编译的CPU选项可以选择AnyCPU,相关配置如下图:

 

 

2.在系统中安装IIS,进入IIS,需要配置一下位置:

首先配置应用程序池,在将Web项目发布后,在应用程序池选项中会出现,一个与我们配置的网站,名称相同名称的应用程序池,,选中相应的名称,在本例中是“FMS”,配置“设置应用程序池默认设置”和“高级设置”,将“启用32位应用程序”,改为false。

 

 

接着重新启动应用程序看是否正常。这是我本机的方法,其余的IIS配置都按默认就行。有什么问题,可以再讨论的哦。

 

 

附:下面是网上的其他一些解决方法,在以上方法不行时,可以试试:

1.     该应用程序的 应用程序池 ------>选择高级设置 --------->启用32位应用程序 ------->true

2.     网上也有资料表明Microsoft.ACE.OLEDB.12.0提供程序在X86和X64位上都可以运行,需要对应版本的Office2010.