1. 程式人生 > >在伺服器端部署操作excel出錯的解決方法

在伺服器端部署操作excel出錯的解決方法

部署一個使用Excel的.net系統時出現如下問題:

拒絕訪問。    
  說明:   執行當前Web請求期間,出現未處理的異常。請檢查堆疊跟蹤資訊,以瞭解有關該錯誤以及程式碼中導致錯誤的出處的詳細資訊。         
  異常詳細資訊:   System.ComponentModel.Win32Exception:   拒絕訪問。       [Win32Exception   (0x80004005):   拒絕訪問。]  
原因: 使用者沒有結束Excel程序的許可權。解決方案:

1.在WEBCONFIG中使用
<identity impersonate="true" userName="伺服器系統使用者名稱" password="伺服器系統密碼"/>
放在<system.web>標籤中
2.或者將ASP.NET設為管理員許可權(IIS5及以下),或者NETWORKSERVICE(IIS6)

 

在伺服器上釋出Web專案,結果一個開發中一直沒遇見的問題出現了:檢索 COM 類工廠中 CLSID 為 {00024500-0000-0000-C000-000000000046} 的元件時失敗,原因是出現以下錯誤: 80070005。跟蹤了一下,結果是將記錄匯出為Excel表時Excel的COM元件出錯,但在VS2005裡面卻沒有任何問題,查了下資料,問題解決。

 

具體解決方法如下:

1:在伺服器上安裝office的Excel軟體.

2:在"開始"->"執行"中輸入dcomcnfg.exe啟動"元件服務"

3:依次雙擊"元件服務"->"計算機"->"我的電腦"->"DCOM配置"

4:在"DCOM配置"中找到"Microsoft Excel 應用程式",在它上面點選右鍵,然後點選"屬性",彈出"Microsoft Excel 應用程式屬性"對話方塊

5:點選"標識"標籤,選擇"互動式使用者"

6:點選"安全"標籤,在"啟動和啟用許可權"上點選"自定義",然後點選對應的"編輯"按鈕,在彈出的"安全性"對話方塊中填加一個"NETWORK SERVICE"使用者(注意要選擇本計算機名),並給它賦予"本地啟動"和"本地啟用"許可權.

7:依然是"安全"標籤,在"訪問許可權"上點選"自定義",然後點選"編輯",在彈出的"安全性"對話方塊中也填加一個"NETWORK SERVICE"使用者,然後賦予"本地訪問"許可權.

這樣,我們便配置好了相應的Excel的DCOM許可權.

注意:這是在WIN2003上配置的,在2000,xp上,NETWORK SERVICE使用者改為ASPNET使用者