在一台特定的计算机上,当我尝试使用.NET创建COM对象的实例时,我收到的错误是我无法访问任何其他计算机。
在此计算机上通过Excel中的VBA使用相同的COM组件时,我不会收到错误。
我已经搜索了错误但没有找到任何内容。我的意思是什么,蟋蟀,我在空间尖叫,没有人能听到我......
我编写了几个使用不同版本的.NET框架的控制台应用程序,并且总是返回相同的错误代码。
完整错误:
System.Runtime.InteropServices.COMException(0x800442B6):创建一个 带有CLSID的COM组件的实例 来自IClassFactory的{2B763B2C-9F4C-4A65-8F47-338CB685D759}失败 由于以下错误:800442b6来自HRESULT的异常: 0x800442B6。在System.RuntimeTypeHandle.CreateInstance(RuntimeType type,Boolean 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 :(得分:2)
先生。帕萨特是对的。有点推动COM组件的供应商导致获得错误的含义,这有助于我解决问题。或许Passant先生想提供一个我认为正确无误的答案。谢谢!
答案 1 :(得分:0)
您可以尝试以下操作:
虽然您不太可能在Process Monitor日志中看到800442B6
,但它仍然可以让您了解哪个Win32 API调用链导致了错误。最有可能的是,它将是一个失败的文件I / O或Registry API。将日志与应用程序成功运行的计算机的日志进行比较。