System.InvalidOperationException: The 'Microsoft.ACE.OLEDB.14.0' provider is not registered on the local machine.
此查找資料認為產(chǎn)生此種錯誤的原因有兩種:
1、在Windows2008r2 x64 OS,在沒(méi)有裝Office2010客戶(hù)端時(shí),或沒(méi)有安裝“數據連接組件”
2、當前Web應用程序的應用程序池是64位的,而提供連接Excel的provider不支持當前64版本的操作系統
解決方法:
1方案:
安裝MS的數據連接組件AccessDatabaseEngine(或安裝office 2010客戶(hù)端),并將當前承載通過(guò)oledb提供程序去訪(fǎng)問(wèn)Excel2010的Web application對應的應用程序池“啟用兼容32位應用程序”,
在對應的 IIS 應用程序池中,“設置應用程序池默認屬性”右擊/“高級設置”/"啟用32位應用程序",設置為 true。
2方案:
安裝AccessDatabaseEngine_64版并且要安裝64位版的office 2010客戶(hù)端
下載地址:http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&FamilyID=c06b8369-60dd-4b64-a44b-84b371ede16d
注意這種情況的,不要設置“啟用32位應用程序”
若目標應用程序不能將應用程序池"啟用兼容32位應用程序",只能在64位應用程序池下運行,且又想有上傳Excel的功能,可按如下方式:
a、創(chuàng )建Asp.net WebService application 程序,并通過(guò)WebService來(lái)連接訪(fǎng)問(wèn)Excel。
b、將此webservice application的應用程序池按方案1方式設置“啟用兼容32位應用程序”。
c、在目標應用程序中添加此webservice。
————————————————
版權聲明:本文為CSDN博主「lilinrui_ruirui」的原創(chuàng )文章,遵循 CC 4.0 BY-SA 版權協(xié)議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/lilinrui_ruirui/article/details/82015788