[ASP.NET][Tips] ...元件擷取COM Class Factory 失敗: 80070005. 解決方法

摘要:[ASP.NET][Tips] ...元件擷取COM Class Factory 失敗: 80070005. 解決方法

今天把在開發主機上測試好的VSTO專案放上IIS,卻發生錯誤訊息....

"由於發生下列錯誤,為具有CLSID {00024500-0000-0000-C000-000000000046} 的元件擷取COM Class Factory 失敗: 80070005."

爬了一下文發現是IUSE_SERVERNAME存取COM元件的權限問題。
雖然解決了,可還是不明白為什麼之前做過COM存取的案子沒發生過。
這次卻發生了.....
難道Windows 2003在元件權限控管上比Windows 2000.Windows NT來的嚴謹....

解決方式(Win2000)
開始 => 設定 => 控制台 => 系統管理工具 => 元件服務 => 主控台根目錄 => 電腦 => 我的電腦 => 右鍵"內容" => TAB"COM安全設定" => 在"存取權限"與啟動和啟用權限"的"編輯限制"加入IUSER_SERVERNAME與IWAM_SERVERNAME並勾選"本機權限"的存取.啟動和啟用權限

若是覺得麻煩下面方式可縮短...(Win2000)
開始 => 執行 => 輸入"dcomcnfg" => 確定 => 主控台根目錄 => 電腦 => 我的電腦 => 右鍵"內容" => TAB"COM安全設定" => 在"存取權限"與啟動和啟用權限"的"編輯限制"加入IUSER_SERVERNAME與IWAM_SERVERNAME並勾選"本機權限"的存取.啟動和啟用權限

Windows 2003則是加入"NETWORK SERVICE".....

若是只要針對某應用程式設定COM權限,則在上述步驟的"我的電腦"下找出該DCOM設定其本端用戶"啟動及啟用"與"存取權限"即可.

ex.EXCEL在"我的電腦"下找到"Microsoft Excel 應用程式"按右鍵"內容"點選"COM安全設定"再進行後續設定即可.....