標籤:
近期做了一個EXCEL匯入資料庫的頁面,在VS2012本機調試中匯入XLS\XLSX均順利通過,但在WEB環境下匯入時均出錯!
在網上查了相關資料,最有可能的原因是 DCOM 中EXCEL應用程式許可權配置的問題。
(DCOM基於元件物件模型(COM),COM提供了一套允許同一台電腦上的用戶端和伺服器之間進行通訊的介面)
配置步驟(本機win8.1 64Bit Office2010 64Bit):
1. 運行-dcomcnfg-元件服務-電腦-我的電腦-DCOM配置-找到 Micosoft Excel Application 或 Micosoft Excel 應用程式-右鍵-屬性;
2. 點擊"標示"標籤-選擇"互動式使用者";
3. 點擊安全"標籤"-在"啟動和啟用許可權"上點擊"自訂",然後點擊對應的"編輯"按鈕,在彈出的"安全性"對話方塊中填加一個"NETWORK SERVICE"使用者(注意要選擇本電腦名稱),並給它賦予"本地啟動"和"本地啟用"許可權;
4. 依然是"安全"標籤,在"存取權限"上點擊"自訂",然後點擊"編輯",在彈出的"安全性"對話方塊中也填加一個"NETWORK SERVICE"使用者,然後賦予"本地訪問"許可權;
配置完成!!馬上開啟網頁測試!XLSX匯入成功!!但是匯入XLS還是出錯了!!!!!!
繼續查資料,通過在webconfig中進行類比管理員權限,<identity impersonate="true" userName="系統管理員" password="系統管理員密碼"/>,問題還是未解決!
最後在網上看到一句64位系統下ASP是不支援的ODBC讀取ACCESS的資料庫,需要設定IIS應用程式集區的進階設定一項 啟用32位應用程式:TRUE。
想到用的是OLEDB讀取EXCEL,試試啟用了32位應用程式,問題解決!!XLS匯入成功!
體會:在32位系統下DCOM許可權配置後問題基本解決,64位系統還需關注IIS設定問題。
.NET網站本機調試通過、發布後EXCEL匯入資料庫報錯問題的解決