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