OLEDB連接訪問(wèn)Excel2007錯(cuò)誤的三種解決方案
本人在windows 2008 r2 x64版本的操作系統(tǒng)中通過(guò)OLEDB提供程序連接訪問(wèn)Excel2007/2003時(shí),程序會(huì)報(bào)如下錯(cuò)誤:
System.InvalidOperationException: The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.
查找資料認(rèn)為產(chǎn)生此種錯(cuò)誤的原因有兩種:
1、在Windows2008r2 x64 OS,在沒(méi)有裝Office2007客戶端時(shí),或沒(méi)有安裝“數(shù)據(jù)連接組件”。
2、當(dāng)前Web應(yīng)用程序的應(yīng)用程序池是64位的Sharepoint應(yīng)用程序池下時(shí),因?yàn)樘峁┻B接Excel的provider不支持當(dāng)前64版本的操作系統(tǒng)。
解決方法:
1方案:安裝MS的數(shù)據(jù)連接組件AccessDatabaseEngine(或安裝office 2007客戶端),并將當(dāng)前承載通過(guò)oledb提供程序去訪問(wèn)Excel2007的Web application對(duì)應(yīng)的應(yīng)用程序池“啟用兼容32位應(yīng)用程序”,在對(duì)應(yīng)的 IIS 應(yīng)用程序池中,“設(shè)置應(yīng)用程序池默認(rèn)屬性”右擊/“高級(jí)設(shè)置”/"啟用32位應(yīng)用程序",設(shè)置為 true。
2方案:安裝AccessDatabaseEngine_64版并且要安裝64位版的office 2010客戶端。
3方案:若目標(biāo)應(yīng)用程序不能將應(yīng)用程序池"啟用兼容32位應(yīng)用程序",只能在64位應(yīng)用程序池下運(yùn)行,且又想有上傳Excel的功能,可按如下方式:
a、創(chuàng)建Asp.net WebService application 程序,并通過(guò)WebService來(lái)連接訪問(wèn)Excel。
b、將此webservice application的應(yīng)用程序池按方案1方式設(shè)置“啟用兼容32位應(yīng)用程序”。
c、在目標(biāo)應(yīng)用程序中添加此webservice。
本文就介紹到這里,希望能對(duì)您有所收獲!
【編輯推薦】



























