使用"Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + filePath + ";" + "Extended Properties='Excel 12.0;IMEX=1'"進行連接時,調試程序無報錯但服務器部署后在客戶端無法使用,報錯信息為“未在本地計算機上注冊“Microsoft.ACE.OLEDB.12.0”提供程序問題分析:
1.服務器端沒有裝Office2007客戶端,或沒有安裝“數據連接組件”。 安裝缺失的DatabaseEngine
2.當前Web應用程序的應用程序池是64位的Sharepoint應用程序池,因為提供連接Excel的provider不支持當前64版本的操作系統
右擊解決方案,選擇屬性,打開配置管理器,活動解決方案平台區域選擇新建解決方案平台選擇X86,重新編譯生成程序
打開IIS7的管理器,打開“應用程序池”區域。在右邊的側邊欄,你會看到一個選項,上面寫着“設置應用程序池的默認”。點擊它,會彈出一個窗口選項。
選中“啟用32位應用程序”,然后重新啟動應用程序池。
其他方案:
若目標應用程序不能將應用程序池"啟用兼容32位應用程序",只能在64位應用程序池下運行,且又想有上傳Excel的功能,可按如下方式:
a、創建Asp.net WebService application 程序,並通過WebService來連接訪問Excel。
b、將此webservice application的應用程序池按方案1方式設置“啟用兼容32位應用程序”。
c、在目標應用程序中添加此webservice。