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

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

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

參考解決步驟如下:

元件服務-->控制檯根節點-->元件服務-->計算機-->我的電腦-->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”)解決。