2010-12-16 5 views
3

Je travaille sur le programme C# pour obtenir les utilisateurs d'un composant appelé Cyber-Ark qui stocke des données cryptées. Quand mon code fonctionne à mi-chemin, je reçois cette exception et même si j'attrape toutes les exceptions je l'obtiens toujours. Y a-t-il du travail pour ça?C# Runtime Exception

Unhandled Exception: System.Runtime.InteropServices.InvalidComObjectException: COM object that has been separated from its underlying RCW cannot be used. 
    at System.StubHelpers.StubHelpers.GetCOMIPFromRCW(Object objSrc, IntPtr pCPCMD, Boolean& pfNeedsRelease) 
    at PAObjectsLib.PrivateArkClass.Term() 
    at CyberArk.API.Objects.PrivateArk.Term() 
    at CyberArk.API.Objects.PrivateArk.DoDispose(Boolean disposing) 
    at CyberArk.API.Objects.CyberArkBase.Dispose() 
    at Program.Main(String[] args) 
+0

Pouvez-vous montrer votre méthode principale? Mais jusqu'à présent, il semble que vous devriez obtenir une mise à jour de votre fournisseur de composants pour résoudre ce problème. –

Répondre

0

Que voulez-vous par "Je comprends quand même?"

Attraper une exception ne le sera jamais. D'autre part, Visual Studio peut être configuré pour s'arrêter lorsqu'une exception est tracée, même si le code la gère (l'attrape). Allez dans le menu debug/exception pour configurer ce niveau de détails.

+0

Je l'ai lu car cette exception échappe à un bloc 'try {...} catch (Exception e) {...}'. – Rup

5

Vous pouvez obtenir cette exception si l'objet COM sous-jacent a été libéré (par des appels à IUnknown.Release). J'ai vu ceci se produire pendant l'arrêt où le runtime a collecté le RCW (wrapper callable d'exécution) et du code de nettoyage essaye alors d'accéder à l'objet COM désormais non accessible pour appeler une fonction "cleanup" sur l'objet COM avant de le relâcher .

Si cela est correct, vous pouvez essayer d'Dispose l'objet plus tôt à l'arrêt.

0

Plusieurs raisons peuvent être à l'origine de l'exception. (essayez de vous débarrasser correctement comme dit @Martin Liversage).

Si cela ne fonctionne pas et que vous avez acheté le composant, contactez le support technique de Cyber-Ark.

Questions connexes