Wie kann ich vermeiden, RPC_E_CALL_REJECTED Ausnahmen bei der Durchführung von PowerPoint-automation?

Wenn mein code versucht, erstellen Sie eine neue Instanz von Microsoft.Office.Interop.PowerPoint.Application, bekomme ich manchmal folgende exception:

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)

Ich sage manchmal, weil es nicht geschehen, konsequent auch den gleichen Eingang. Darüber hinaus tritt es auch (mit dem gleichen Mangel an Konsistenz) in andere Teile von meinem code, wo ich auch die Interaktion mit der PowerPoint-automation-API.

Habe ich ausprobiert, diese Lösung für MSDN-selbst das scheint die am meisten empfohlene Lösung gibt. Jedoch, es scheint nicht zu Auswirkungen haben, als ich noch beobachten das gleiche Verhalten.

Meine Fragen sind:

  1. Hat die MSDN-Lösung funktioniert für PowerPoint-automation?
  2. Wie kann ich überprüfen, ob ich richtig angewendet es an meinem code?
  3. Hat jemand eine alternative Lösung?

Ich bin mit C#, .NET 4 und PowerPoint 2007.

  • Ich bin mit den gleichen Problemen. Hinzufügen vielleicht einen Thread.Sleep(100) hier und da helfen sollte? Füllen eines Diagramms die Aktualisierung einige Zeit dauert die grapics etc, so müssen Sie möglicherweise warten, bevor Sie mehr Daten.
InformationsquelleAutor Chry Cheng | 2012-09-05
Schreibe einen Kommentar