在伺服器端部署操作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使用者