以Excel爲例windows
問題描述:安全
檢索 COM 類工廠中 CLSID 爲 {00024500-0000-0000-C000-000000000046}的組件時失敗,緣由是出現如下錯誤: 80070005基本上.net導出excel文件,都須要如此配置一下,不配置有的時候沒錯,而配置後基本應該不會出錯。服務器
具體步驟:asp.net
1:在服務器上安裝office的Excel軟件.
2:在"開始"->"運行"中輸入dcomcnfg.exe啓動"組件服務"
3:依次雙擊"組件服務"->"計算機"->"個人電腦"->"DCOM配置"
4:在"DCOM配置"中找到"Microsoft Excel 應用程序",在它上面點擊右鍵,而後點擊"屬性",彈出"Microsoft Excel 應用程序屬性"對話框
5:點擊"標識"標籤,選擇"交互式用戶"
6:點擊"安全"標籤,在"啓動和激活權限"上點擊"自定義",而後點擊對應的"編輯"按鈕,在彈出的"安全性"對話框中填加一個"NETWORK SERVICE"用戶(注意要選擇本計算機名),並給它賦予"本地啓動"和"本地激活"權限.
7:依然是"安全"標籤,在"訪問權限"上點擊"自定義",而後點擊"編輯",在彈出的"安全性"對話框中也填加一個"NETWORK SERVICE"用戶,而後賦予"本地訪問"權限.
8.若是交互式用戶設置後出現錯誤8000401a,可取消交互式用戶,指定爲administratr,可暫時解決此問題。進一步的解決方式還有待探討。
9.採用第8點的設置後,打開Excel可能會出現「沒法使用對象引用或連接」,而且不能進行單元格粘貼。緣由不明,取消設置後便可消失。
另外說明:光按以上設置並不能徹底保證不出問題,由於調用OFFICE的操做可能涉及其餘的系統資源,極可能依然權限不夠而致使問題,只是設置EXCEL應用程序後,仍是可能會報80070005的錯誤,最保險的是應該在dcomcnfg中選中個人電腦而後右鍵屬性->com安全,將裏面的訪問權限,啓動和激活權限全都編輯默認,在當中加上network service(iis 5.0的話,要加的是asp.net用戶),並如前面對networkservice設置上相同的權限,這樣基本上能保證不會再出什麼問題。測試
以上爲基本出路方法,可是我也遇到過應用以上方法仍是報錯的狀況,個人環境是windows2003 + office2003+office2007,在測試服務器上均可以導出無任何問題!可是更新了正式環境就是報錯,權限都設置了仍是報錯,由於個人測試服務器是默認office啓動的,因此我懷疑是office版本環境問題!因而我卸載了office2007,立刻測試ok了,可是重啓服務器後就產生了have not been Pre-compiled錯誤,導出頁面都沒法打開了,因而我又從新安裝了office2007,頁面能夠打開了,可是導出excel時又開始報錯!我又把全部的權限從新設置一遍,問題依舊!後來發現兩個服務器默認打開excel的程序不同,測試環境是默認office2003打開,正式環境是office2007打開,因而我在正式環境從新註冊office2003,使其一樣也是默認office2003打開程序,靠!問題終於解決了!!!.net
註冊方法 執行 開始----運行----輸入excel2003的安裝路徑,例如 "C:\Program Files\Microsoft Office\OFFICE11\excel.exe" /regserver 注意/符號前面有一個空格,其中"C:\Program Files\Microsoft Office\OFFICE11\excel.exe" 是excel2003的安裝程序的路徑,參數regserver表示註冊的意思!
運行後,會啓動Office 2003的安裝程序,進行修復,從新註冊。
excel2007爲默認的啓動程序的方法類同,能夠執行 開始----運行----"D:\Program Files\Microsoft Office\Office12\excel.exe" /regserver
綜上所述,再遇到Excel導出、導入問題時,先考慮權限問題,再考慮office的版本環境!如此基本可以解決這些問題了excel
1.IIS6按照以上操做便可解決問題server
2.iis7下,因爲默認的帳戶並不是network service,所以要手動設置一下 應用程序池-》高級設置-》標識-》內置帳戶-》修改成NetworkService對象