最近在.net中處理Excel文件數據導入時報出以下錯誤:
檢索COML類工廠中 CLSID為 {00024500-0000-0000-C000-000000000046}的組件時失敗,原因是出現以下錯誤: 80070005,如圖所示:
可以看到報出的異常類型為:UnauthorizedAccessException,沒有權限訪問,表明我們需要配置執行操作賬戶的COM訪問權限.
由於系統是Windows Server 2008 64位版的,服務器上安裝的Excel版本為Excel 2007 是32位應用程序,所以在系統的組件服務中是找不到Excel的,
此時,需要在32位DCOM配置中設置權限,具體步驟如下:
1.運行命令"comexp.msc -32",打開組件服務32位管理控制台,如圖:
2.在DCOM配置中找到"Microsoft Excel Applcation",如圖:
3.右鍵->屬性,在標識選項卡中選擇"交互式用戶",如圖:
4.在"安全"選項卡中的"啟動和激活權限"分組中,選擇"自定義",然后點擊"編輯",添加執行操作的賬戶並授予"本地啟動"和"本地激活"權限,如圖所示
5..在"安全"選項卡中的"訪問權限"分組中,選擇"自定義",然后點擊"編輯",添加執行操作的賬戶並授予"本地訪問"權限,如圖所示
6.配置結束,重新運行程序,不再報錯.