簡體   English   中英

嘗試在 CLIENT 上打開 PPT 文件時出現 CO_E_SERVER_EXEC_FAILURE

[英]CO_E_SERVER_EXEC_FAILURE when trying to open PPT-File on CLIENT

請注意,這是不是一個服務器-組件或ASP.NET。

這發生在客戶端應用程序 (WinForms) 上

我嘗試從我的應用程序中打開一個 PPT 文件。 以下代碼在我的機器上運行良好:

   _ppApp = new Microsoft.Office.Interop.PowerPoint.Application();
                _ppApp.DisplayAlerts = PpAlertLevel.ppAlertsNone;
                _ppApp.SlideShowEnd += PpApp_SlideShowEnd;

但至少在一個用戶(第一個嘗試運行它的用戶)的機器上,第一行已經拋出以下異常:

由於以下錯誤,檢索具有 CLSID {91493441-5A91-11CF-8700-00AA0060263B} 的組件的 COM 類工廠失敗:80080005 服務器執行失敗(來自 HRESULT 的異常:0x80080005 (CO_E_FAILVEREX))。 在 System.Runtime.Remoting.RemotingServices.AllocateUninitializedObject(RuntimeType objectType) 在 System.Runtime.Remoting.Activation.ActivationServices.CreateInstance(RuntimeType serverType) 在 System.Runtime.Remoting.Activation.ActivationServices.IsCurrentContextOK(RuntimeType serverType, Object[] props , Boolean bNewObj) at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawl) at SystemMark .RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
在 System.Activator.CreateInstance(Type type, Boolean nonPublic) at System.Activator.CreateInstance(Type type)

我已經在 SO 上的各種與服務器相關的片段上看到了這種錯誤,其中解決方案是關於更改服務器和/或服務行為。

但這是一個純粹的客戶端應用程序,導致了這個麻煩。 客戶安裝了現代化的辦公室。 什么可能導致這種行為?

我意識到這個答案來得有點晚,也許您已經解決了它(在這種情況下,它至少可能對未來的讀者有用)。 我今天遇到了這個問題,這種行為可能是因為您的 PowerPoint 和客戶端應用程序以不同的權限運行。

例如,PowerPoint 可能以普通用戶權限運行,而您的客戶端應用程序可能以管理員身份運行。 這將導致它掛起一段時間,然后導致您描述的錯誤。 解決方案是以相似的權限運行這兩個程序。 因此,要么作為管理員,要么作為普通用戶。 這防止了我的情況下的錯誤,這聽起來與您的情況非常相似(WPF 應用程序訪問打開的 PowerPoint 演示文稿)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM