標籤:
用asp.net把值寫入Excel在本地測試通過,然後提交伺服器後老是寫入不成功 並提示錯誤: Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80070005.
在網路上尋找了許多資料,原來是對於使用者來說,對伺服器上的檔案的操作許可權不夠所引起的錯誤,要配置DCOM
具體配置方法如下:
1:在伺服器上安裝office的Excel軟體.
2:在"開始"->"運行"中輸入dcomcnfg.exe啟動"元件服務"
3:依次雙擊"元件服務"->"電腦"->"我的電腦"->"DCOM配置"
4:在"DCOM配置"中找到"Microsoft Excel 應用程式",在它上面點擊右鍵,然後點擊"屬性",彈出"Microsoft Excel 應用程式屬性"對話方塊
5:點擊"標識"標籤,選擇"互動式使用者"
6:點擊"安全"標籤,在"啟動和啟用許可權"上點擊"自訂",然後點擊對應的"編輯"按鈕,在彈出的"安全性"對話方塊中填加一個"NETWORK SERVICE"使用者(注意要選擇本電腦名稱),並給它賦予"本地啟動"和"本地啟用"許可權.
7:依然是"安全"標籤,在"存取權限"上點擊"自訂",然後點擊"編輯",在彈出的"安全性"對話方塊中也填加一個"NETWORK SERVICE"使用者,然後賦予"本地訪問"許可權.
好不容易這個問題解決了,接下來又出現8000401a錯誤!
如果是8000401a錯誤:
右鍵開啟屬性對話方塊,點擊"標識"選項卡,
點"下列使用者",把管理員的使用者密碼正確填寫進去...
點擊"安全"選項卡,
依次把"啟動和啟用許可權","存取權限","配置許可權",都選擇為自訂,
然後依次點擊它們的編輯,把NETWORK SERVICE添加進去,並加入本地的讀寫權限...
最後,我們還要給所在盤的安全設定修改許可權,同樣也是屬性--安全--添加NETWORK SERVICE,給它修改許可權。
這樣,我們便配置好了相應的Excel的DCOM許可權.
總結:
1。只要加NETWORK SERVICE的許可權就可以了,不必加everyone;
2。如果選擇“互動式使用者”還不行,必須選擇“下列使用者”,然後填入管理員的使用者名稱和密碼;
3。還要設定盤符的“安全”選項卡,在X盤上右擊-屬性-安全,同樣添加NETWORK SERVICE使用者名稱,並給它修改的許可權,這樣才最後可以用。
ASP.NET訪問Excel 失敗的解決方案(錯誤號碼:80070005,8000401a)