C#运行时异常

C#运行时异常,c#,cyber-ark,C#,Cyber Ark,我正在开发C#程序,从一个名为Cyber Ark的组件获取用户,该组件存储加密数据。当我的代码运行到一半时,我得到了这个异常,即使我捕获了所有的异常,我仍然得到了它。有没有解决这个问题的方法 Unhandled Exception: System.Runtime.InteropServices.InvalidComObjectException: COM object that has been separated from its underlying RCW cannot be used.

我正在开发C#程序,从一个名为Cyber Ark的组件获取用户,该组件存储加密数据。当我的代码运行到一半时,我得到了这个异常,即使我捕获了所有的异常,我仍然得到了它。有没有解决这个问题的方法

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)
你想要什么“我还懂吗?”

捕获异常永远不会发生


另一方面,可以将VisualStudio配置为在出现任何异常时停止,即使您对其进行代码处理(捕获)。进入debug/Exception(调试/异常)菜单以配置该级别的详细信息。

如果基础COM对象已被释放(通过调用
IUnknown.Release
),则可以获得此异常。我在关机期间看到过这种情况,运行时收集了RCW(运行时可调用包装器),一些清理代码然后尝试访问现在不可访问的COM对象,在释放COM对象之前调用COM对象上的“清理”函数


如果这是正确的,您可以尝试在关机时更早地处置对象。

导致异常的原因可能不止一个。(试着像@Martin Liversage所说的那样正确处理)


如果它不起作用,并且您已经购买了该组件,请联系赛博方舟技术支持。

您能展示一下您的主要方法吗?但到目前为止,您似乎应该从组件供应商处获得更新以解决此问题。我阅读此消息时,认为此异常正在逃避
try{…}catch(异常e){…}
块。