请注意,这是关于服务器组件或ASP.NET的 NOT 。
这发生在客户端应用程序(WinForms)
上我尝试在我的应用程序中打开PPT文件。以下代码在我的机器上正常工作:
_ppApp = new Microsoft.Office.Interop.PowerPoint.Application();
_ppApp.DisplayAlerts = PpAlertLevel.ppAlertsNone;
_ppApp.SlideShowEnd += PpApp_SlideShowEnd;
但至少在一个用户的机器上(第一个尝试运行它的用户)第一行已经抛出以下异常:
使用CLSID检索组件的COM类工厂 {91493441-5A91-11CF-8700-00AA0060263B}由于以下原因而失败 错误:80080005服务器执行失败(来自HRESULT的异常: 0x80080005(CO_E_SERVER_EXEC_FAILURE))。在 System.Runtime.Remoting.RemotingServices.AllocateUninitializedObject(RuntimeType objectType)at System.Runtime.Remoting.Activation.ActivationServices.CreateInstance(RuntimeType serverType)at System.Runtime.Remoting.Activation.ActivationServices.IsCurrentContextOK(RuntimeType serverType,Object [] props,Boolean bNewObj)at System.RuntimeTypeHandle.CreateInstance(RuntimeType类型,布尔值 publicOnly,Boolean noCheck,Boolean& canBeCached, RuntimeMethodHandleInternal&安培; ctor,布尔& bNeedSecurityCheck)at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly,Boolean skipCheckThis,Boolean fillCache,StackCrawlMark& stackMark)at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis,Boolean fillCache,StackCrawlMark& stackMark)
在System.Activator.CreateInstance(Type type,Boolean nonPublic)at System.Activator.CreateInstance(类型类型)
我在各种与服务器相关的代码段上看到了这种错误,其中解决方案是关于更改服务器和/或服务行为。
但这是一个纯粹的客户端应用程序导致了这个麻烦。客户安装了现代化的办公室。什么可能导致这种行为?
答案 0 :(得分:-1)
我意识到这个答案有点晚了,也许你已经解决了它(在这种情况下,它至少对未来的读者有用)。我今天遇到了这个问题,并且可能出现此行为,因为您的PowerPoint和客户端应用程序正在以不同的权限运行。
例如,PowerPoint可能以正常用户权限运行,而您的客户端应用程序可能以管理员身份运行。这将导致它挂起一段时间,然后导致您描述的错误。解决方案是运行具有类似权限的两个程序。因此,无论是作为管理员还是作为普通用户。这可以防止我的错误,这听起来与你的错误非常相似(WPF app访问一个打开的PowerPoint演示文稿)。