当我的代码尝试创建 的新实例时Microsoft.Office.Interop.PowerPoint.Application
,有时会出现以下异常:
System.Runtime.InteropServices.COMException (0x80010001): Retrieving the COM class factory for component with CLSID {91493441-5A91-11CF-8700-00AA0060263B} failed due to the following error: 80010001 Call was rejected by callee. (Exception from HRESULT: 0x80010001 (RPC_E_CALL_REJECTED)).
at 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 type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache)
at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean skipCheckThis, Boolean fillCache)
at System.Activator.CreateInstance(Type type, Boolean nonPublic)
我有时会说,因为即使给出相同的输入,它也不会始终如一地发生。此外,它也发生在我也与 PowerPoint 自动化 API 交互的代码的其他部分(同样缺乏一致性)。
我已经从 MSDN 本身尝试了这个解决方案,这似乎是最推荐的解决方案。但是,它似乎没有任何影响,因为我仍然观察到相同的行为。
我的问题是:
- MSDN 解决方案是否适用于 PowerPoint 自动化?
- 如何验证我是否已将其正确应用到我的代码中?
- 有没有人有替代解决方案?
我正在使用 C#、.NET 4 和 PowerPoint 2007。