1. 程式人生 > >解決IIS服務使用C#程式碼在Windows Server 2008上無法啟動Excel的問題

解決IIS服務使用C#程式碼在Windows Server 2008上無法啟動Excel的問題

最近遇到一個後臺匯出Excel檔案的問題,用的是C#語言,呼叫Office的Excel元件實現。本機作業系統為Windows 7 X64,安裝了Office 2013。啟動Excel的程式碼為:

Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
儲存Excel檔案的程式碼為:
workbook.SaveAs(fileName, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookDefault, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                    Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing,
                    Type.Missing,
                    Type.Missing, Type.Missing);
本地測試是沒有任何問題的。但是程式部署到伺服器(Windows Server 2008,安裝了Office 2016)上,卻死活導不出Excel檔案。根據日誌除錯時發現,在啟動Excel時出錯了,錯誤資訊為:
檢索 COM 類工廠中 CLSID 為 {00024500-0000-0000-C000-000000000046} 的元件失敗,原因是出現以下錯誤: 80070005 拒絕訪問。 (異常來自 HRESULT:0x80070005 (E_ACCESSDENIED))
根據網上的參考,修改Microsoft Excel Application的許可權,並且修改IIS應用程式池標識為Network Service,依然無法解決。

參考解決步驟如下:

元件服務-->控制檯根節點-->元件服務-->

計算機-->我的電腦-->DCOM配置-->Microsoft Excel Application屬性-->安全,在“啟動和啟用許可權”、“訪問許可權”、“配置許可權”中分別新增Network Service使用者和IIS IUSRS使用者,並配置許可權為允許本地啟動、遠端啟動、本地啟用、遠端啟用。


再到IIS中進行應用程式池配置:

Internet Information Services(IIS)管理器-->應用程式池-->LYWebGISCC-->高階設定-->標識-->內建賬戶-->NetworkService


這些步驟正常執行後,依然無法匯出,會報錯。

這時,回想起剛才的配置過程,原來還少了關鍵一步,就是進行賬戶驗證的配置,將Microsoft Excel Application屬性的身份驗證級別從“預設”修改為“無”。



配置過程中如果遇到下述錯誤,

檢索 COM 類工廠中 CLSID 為 {00024500-0000-0000-C000-000000000046} 的元件失敗,原因是出現以下錯誤: 8000401a 因為配置標識不正確,系統無法開始伺服器程序。請檢查使用者名稱和密碼。 (異常來自 HRESULT:0x8000401A)。

可通過修改應用程式池的標識(修改為“NetworkService”)解決。

相關推薦

解決IIS服務使用C#程式碼Windows Server 2008無法啟動Excel的問題

最近遇到一個後臺匯出Excel檔案的問題,用的是C#語言,呼叫Office的Excel元件實現。本機作業系統為Windows 7 X64,安裝了Office 2013。啟動Excel的程式碼為: M

解決IIS服務使用C#程式碼Windows Server 2012無法啟動Excel的問題

錯誤資訊:檢索 COM 類工廠中 CLSID 為 {00024500-0000-0000-C000-000000000046} 的元件失敗,原因是出現以下錯誤: 80070005 拒絕訪問。 (異常來自 HRESULT:0x80070005 (E_ACCESSDENIED)) 參考解決步驟如下: 元件服務

服務器使用Windows Server 2008進行性能優化的方法

用戶 精品 修正 str 磁盤 缺點 技術 window alt 本文引用於:征途源碼論壇(www.zhengtuwl.com)-----專註各類免費精品源碼下載的平臺 Windows效勞器大概是運用最多的體系,雲效勞器中也不破例。運用中,契合用戶操作習慣它有天然的優勢,

如何給惠普服務器安裝windows server 2008操作系統

惠普 服務器 server2008 操作系統 安裝服務器操作系統1.準備工具:(1)顯示器一臺(含鍵盤鼠標) (2)U盤一個U盤內準備文件:(1)windows server 2008 r2系統文件 (2)系統激活工具 2.思路: (1)配置磁盤

Dell R730服務器安裝windows server 2008 R2藍屏問題

tex http 菜單 應用 color .com 解決 08 r2 image 前幾天在dell R730服務器上安裝windows server 2008 R2,安裝過程藍屏; 查詢相關資料,13G服務器OS-driver比較新,其中不包含windows server

Windows Server 2008 IE 無法調整安全級別 的解決方案

   在預設狀態下,使用Windows Server 2008系統自帶的IE瀏覽器訪問網頁內容時,我們時常發現頁面內容顯示不全。後來,我們進入IE瀏覽器的Internet選項設定對話方塊中檢視IE瀏覽器的安全級別時,發現Internet區域的安全級別處於最高狀態,而在該狀

Windows Server 2008 mmc無法建立單元

經過各種嘗試,查看了path,沒有問題,登錄檔不敢亂改,在這種沒有成功的情況下,發現下面這句讓我解決了問題,特此分享。 地址:http://www.datazx.cn/Forums/en-US/eb317c2f-ebf1-42fe-8fcc-a61a1246f5d9/act

關於windows server 2008 R2 無法安裝安卓模擬器的問題

今天在server 2008伺服器上除錯一個php的網站,這個網站打包成了app,但是由於域名更換,app無法訪問。本來想著在伺服器上弄個安卓模擬器,裝上apk,再修改一下hosts,結果發現伺服器裝不上安卓模擬器。 最終湊合辦法:修改了自己電腦的hosts,將域名重定向(

asp.net網站部署在雲伺服器windows server 2008

搭建一個網站需要以下4個準備: 1.域名解析 2.(雲)伺服器 3.資料庫 4.網站程式碼 其中1可以可以去DNSPOD申請,同時需要進行備案,在上面就都可以完成。2用的是阿里雲伺服器windows server 2008 R2,去阿里雲購買一個,一般400多一個月就好。3

windows server 2008 r2無法新增功能和角色,檢查系統更新時也提示0x80070424?無法手動安裝系統補丁

無法發現系統的狀態。找到一個意外的異常:System.Runtime.InteropServices.COMException (0x80070424): 指定的服務未安裝。 (異常來自 HRESULT:0x80070424)   在 System.Runtime.Inter

阿裏雲雲服務Windows Server 2012 R2無法安裝IIS等組件的解決辦法

.net 錯誤 cpu 解決 錯誤代碼 數據中心 40G 添加 系統 Windows Server2012 R2數據中心版 不管安裝什麽組件,都顯示存儲空間不足,無法應用命令,錯誤代碼0x80070008。 最終確認是服務器配置過低的原因,因為這個型號是低級別的配置,1核

Windows Server 2008 + IIS 7+ ASP.NET 支援10萬併發請求--手動解決方案(轉載)

今天下午17點左右,部落格園部落格站點出現這樣的錯誤資訊: Error Summary: HTTP Error 503.2 - Service Unavailable The [email protected] setting is being exceeded. 

如何解決Windows Server 2008 服務啟動不能呼叫Office Word的問題

今天在windows server2008上部署一個應用時發現了一個問題 是一個自己寫的service,用來將office文件轉換成pdf的,發現總是失敗,追蹤了發現程序管理器裡word運行了,但是一直卡在那裡,以為自己裝的2010版本不對,卸了重灌幾次無效果,後來想到之前

Windows Server 2008 IIS 7.0 部署WebAPI返回405,500錯誤的解決方法

最近在做一個WebAPI和Vue案子,本機除錯沒有問題,但釋出到IIS伺服器上,報錯返回405,500. 確認是在put請求時發生。度娘了很多文章沒有同時解決問題,後參考其它案子的寫法,在web.config內增加以下內容,即可解決。備份在此,以便後用。 &l

硬盤安裝Windows Server 2008(解決系統盤符變成D盤)

光盤 alt c11 convert window 回車 set put 方法 硬盤安裝Windows 2008系統方法 先去下載iso鏡像文件。加載Win2008鏡像文件,把裏面的文件全部復制到硬盤,比如D:\win2008。 把win2008裏面的&ld

將文件服務器及域控制器從2003遷移至Windows Server 2008 R2

共享文件 f11 ima 新建 png 命名 chm 基礎架構 width (一)背景環境:   當前,多數小企業仍然使用windows server2003 系統做域控制器及文件服務器,由於windows server 2003在多年使用之後變得卡頓,且存在異常的系統錯

Windows Server 2008 R2 Server中,連接其他服務器的數據庫遇到“未啟用當前數據庫的 SQL Server Service Broker,因此查詢通知不受支持。如果希望使用通知,請為此數據庫啟用 Service Broker ”

lba pos 數據庫名 nbsp bsp enable 輸入 images logs 項目代碼和數據庫部署在不同的Windows Server 2008 R2 Server中,錯誤日誌顯示如下: "未啟用當前數據庫的 SQL Server Service Broker,因

windows server 2008&R2 復制問題(RPC服務不可用)

有客 徹底 size 通信 server 外部 alt 運行 啟動 前段時間,有客戶反饋有1臺輔助域控復制有問題,報RPC服務不可用打開事件查看器,發現很多event id 為6013事件,系統啟動時間:45626584秒,大約是528天,系統運行時間超過了497天 Win

Windows Server 2008 R2 如何啟用WINS服務

分享 oss gis .com watermark 啟用 ges water ffffff Windows Server 2008 R2啟用不了WINS功能?啟用Remote Registry這個服務。 Windows Server 2008 R2 如何啟用WINS服務

Windows Server 2008 R2 安裝oracle10g報錯的解決方法

pro 是我 oracle10g 就是 sap 打開 報錯 程序輸入點 2008 r2 最近在Windows Server 2008 R2 上安裝oracle10g時, 不管是安裝客戶端還是服務端,都會報一個錯: 【無法定位程序輸入點GetProcessImageFileN