在一台特定的计算机上,当我尝试使用创建COM对象的实例时,我遇到了其他任何计算机上都没有的错误。NET。
当我在这台计算机上通过Excel中的VBA使用相同的COM组件时,我不会收到错误。
我已查找错误,但没有找到任何内容。我什么都不是,蟋蟀,我在太空里尖叫,没有人能听到我…
我已经编写了几个控制台应用程序,它们使用不同版本的。NET框架,并且总是返回相同的错误代码。
完全错误:
系统。运行时。InteropServices。COMException(0x800442B6):正在创建具有CLSID的COM组件的实例{IClassFactory的2B763B2C-9F4C-4A65-8F47-338CB685D759}失败由于以下错误:800442b6 HRESULT出现异常:0x800442B6.位于系统。RuntimeTypeHandle。CreateInstance(运行时类型type,布尔publicOnly,布尔noCheck,布尔&canBeCached,RuntimeMethodHandleInternal&ctor,布尔&bNeedSecurityCheck)系统运行时间类型。CreateInstanceSlow(仅布尔公共,布尔skipCheckThis,布尔fillCache,StackCrawlMark&stackMark)系统运行时间类型。CreateInstanceDefaultCtor(布尔publicOnly,布尔skipCheckThis,布尔fillCache,StackCrawlMark&stackMark)
在系统中。激活器。处的CreateInstance(类型类型,Boolean nonPublic)系统激活器。CreateInstance(类型类型)
谢谢!
Mr。帕桑特是对的。对COM组件的供应商进行了一点施压,结果获得了错误的含义,这帮助我解决了问题。也许帕桑特先生想提供一个我可以标记为正确的答案,以表扬他。谢谢
您可以尝试以下操作:
- 添加代码以记录错误的时间戳
- 然后运行Process Monitor,运行您的应用程序,并研究围绕该时刻的日志
- 以只查看失败的API调用的方式筛选Process Monitor的输出
虽然您不太可能在Process Monitor日志中看到800442B6
,但它仍然可以让您了解是哪条Win32 API调用链导致了错误。很可能是一个失败的文件I/O或注册表API。将日志与应用程序成功运行的计算机的日志进行比较。