"檢索COM類工廠中 CLSID為 {00024500-0000-0000-C000-000000000046}的組件時失敗,原因是出現以下錯誤: 80070005" 問題的解決


一、故障環境

  1. Windows 2008
  2. .net 3.0

二、故障描述

​ 調用excel組件生成excel文檔時頁面報錯。報錯內容一大串,核心是“檢索COM類工廠中 CLSID為 {00024500-0000-0000-C000-000000000046}的組件時失敗,原因是出現以下錯誤: 80070005”。應該是WEB應用帳號權限不足導致的。百度上同樣問題的解決方案超級多,但內容幾乎一樣,效果也幾乎一樣是沒什么用。結合網文和實際應用折騰了半天終於解決,整理一下思路記錄在此,以備再查。

三、處理

  1. 打開“組件服務”。有的文章說32位DCOM配置需要在運行中執行“comexp.msc -32”來啟動,但在此實例中怎么打開都是一樣的。
  2. 在“組件服務/計算機/我的電腦/DCOM配置”中找到“Microsoft Excel Application”或“Microsoft Excel 應用程序”,右鍵菜單選“屬性”。在屬性面板里切換到“標識”選擇“啟動用戶”,再切換到“安全”將項目應用程序池對應啟動帳號(或iis_wpg組) 分別添加到“啟動和激活權限”以及“訪問權限”中,並給予所有權限。確定並退出。
  3. 找到office安裝目錄,給excel.exe所在目錄添加應用程序池對應啟動帳號(或iis_wpg組)讀取及讀取執行權限。

四、幾個小細節

  1. 很多網文都說在“組件服務”屬性面板的“標識”里選擇“交互用戶”,事實上在此實例中是完全行不通的,必須要設為“啟動用戶”。
  2. 故障發生時在系統日志里可能會連帶報告

“應用程序-特定 權限設置並未從地址 LocalHost(使用 LRPC) 使用 CLSID
{000C101C-0000-0000-C000-000000000046}
和 APPID
{000C101C-0000-0000-C000-000000000046}
向用戶XXXXXXXX授予對 COM 服務器應用程序的 本地 激活 權限。此安全權限可以使用組件服務管理工具進行修改。”

可以不處理。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM