ASP.NET訪問Excel 失敗的解決方法(錯誤號:80070005,8000401a)

用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 應用程序屬性"對話框asp.net

5:點擊"標識"標籤,選擇"交互式用戶"測試

6:點擊"安全"標籤,在"啓動和激活權限"上點擊"自定義",而後點擊對應的"編輯"按鈕,在彈出的"安全性"對話框中填加一個"NETWORK SERVICE"用戶(注意要選擇本計算機名),並給它賦予"本地啓動"和"本地激活"權限.spa

7:依然是"安全"標籤,在"訪問權限"上點擊"自定義",而後點擊"編輯",在彈出的"安全性"對話框中也填加一個"NETWORK SERVICE"用戶,而後賦予"本地訪問"權限.
好不容易這個問題解決了,接下來又出現8000401a錯誤!
若是是8000401a錯誤:.net

右鍵打開屬性對話框,點擊"標識"選項卡, component

點"下列用戶",把管理員的用戶密碼正確填寫進去... it

點擊"安全"選項卡, class

依次把"啓動和激活權限","訪問權限","配置權限",都選擇爲自定義,

而後依次點擊它們的編輯,把NETWORK SERVICE添加進去,並加入本地的讀寫權限...

 

最後,咱們還要給所在盤的安全設置修改權限,一樣也是屬性--安全--添加NETWORK SERVICE,給它修改權限。

這樣,咱們便配置好了相應的Excel的DCOM權限.

 

總結:

1。只要加NETWORK SERVICE的權限就能夠了,沒必要加everyone;

2。若是選擇「交互式用戶」還不行,必須選擇「下列用戶」,而後填入管理員的用戶名和密碼;

3。還要設置盤符的「安全」選項卡,在X盤上右擊-屬性-安全,一樣添加NETWORK SERVICE用戶名,並給它修改的權限,這樣才最後能夠用。

相關文章
相關標籤/搜索