当前位置: 代码迷 >> ASP.NET >> 未在本地计算机下注册“Microsoft.ACE.OLEDB.12.0”提供程序 或 未在本地计算机下注册“Microsoft.Jet.OLEDB.4.0”提
  详细解决方案

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

热度:8797   发布时间:2013-02-25 00:00:00.0
未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序 或 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提
我想在64位的服务器上导出Excel,该服务器上安装的是office2007。

第一调试以下错误提示
提示“.net FrameWork数据提供程序要求 Microsoft Data Access Components (MDAC) 。请安装Microsoft Data Access Components(MDAC)2.6或更高版本”,“System.InvalidOperationException: .Net Framework 数据提供程序要求 Microsoft Data Access Components(MDAC)。请安装 Microsoft Data Access Components(MDAC) 2.6 或更高版本。 ---> System.Runtime.InteropServices.COMException (0x80040154): 检索 COM 类工厂中 CLSID 为 {2206CDB2-19C1-11D1-89E0-00C04FD7A829} 的组件时失败,原因是出现以下错误: 80040154。”
在网上找了方法
第一、打开"c:\windows\inf"  注意:“inf”是隐藏目录。
         找到文件“mdac.inf”。鼠标点击右键——> 安装 。
第二、提示要“I386文件夹中的文件”,插入windows xp 安装盘(或为网上下在windows I386 文件。)

这一不走完之后,再导出可是就提示如题的错误了,继续往上搜索
去http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463960fdcdb/AccessDatabaseEngine.exe下载。然后安装就行了。
已安装还是如题错误。
请指教,急求!!!!!!!



------最佳解决方案--------------------------------------------------------
设置 IIS 应用程序池  在 32位 模式下运行 
可以解决 大多  因为 操作系统位数而产生的问题
------其他解决方案--------------------------------------------------------
我也遇到过一样的问题。
首先你需要下一个32位的office的DataAccess驱动(需要最新版本的。)。安装在服务器上。
再在IIS的你的项目对应的程序池的高级选项中 有一个 可使用32位程序选项,默认是false,修改为true。
然后就可以使用了。
------其他解决方案--------------------------------------------------------
64位windows2008server R2平台下发布网页,其中有个功能是在页面上连接并打开一个excel2007的表格,但是在客户端却提示“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序
    using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + filePath + ";" + "Extended Properties='Excel 12.0;IMEX=1'")){}
 
 解决办法1  (验证可以了)
   选择 该应用程序的 应用程序池 ------>选择高级设置 --------->启用32位应用程序  ------->true 
 
解决办法2
   Microsoft.ACE.OLEDB.12.0是不能再x64上使用的,你要强制把你的web application编译成x86再发布到Win08 x64上,记得在Application pool上设置Enable 32bit Application = true。
(没有验证) 
------其他解决方案--------------------------------------------------------
Try to change target platform before compilation to "x86" instead of "Any CPU"
详见
http://social.msdn.microsoft.com/Forums/zh-CN/adodotnetdataproviders/thread/37643580-bf1f-4a3a-b63b-7d5aba2a940d

Basically, if you're on a 64-bit machine, IIS 7 is not (by default) serving 32-bit apps, which the database engine operates on. So here is exactly what you do:

1) ensure that the 2007 database engine is installed, this can be downloaded at: http://www.microsoft.com/downloads/details.aspx?FamilyID=7554F536-8C28-4598-9B72-EF94E038C891&displaylang=en

2) open IIS7 manager, and open the Application Pools area. On the right sidebar, you will see an option that says "Set application pool defaults". Click it, and a window will pop up with the options.

3) the second field down, which says 'Enable 32-bit applications' is probably set to FALSE by default. Simply click where it says 'false' to change it to 'true'.
  相关解决方案