如何找出COM类.NET无法找到的内容?

时间:2015-08-28 19:12:21

标签: .net iis com

我们的网络应用程序几天前神秘地开始间歇性地抛出此错误:

  

System.TypeInitializationException:' XXXXXXXXXXXXXX'的类型初始值设定项抛出一个例外。 ---> System.Runtime.InteropServices.COMException:未注册的类(HRESULT异常:0x80040154(REGDB_E_CLASSNOTREG))
  在SBStringList.TElStringList..ctor()

我们已与SBStringList.TElStringList班级的创作者交谈,但它并未使用COM。我在反编译器中检查了它并确认了它们的断言。

如何确定系统尝试创建的COM类?

一旦我们在Web应用程序中开始出现此错误,我们几乎无处不在。如果我们清除临时的ASP.NET文件,那么错误就会消失,直到它再次神秘地消失为止。

1 个答案:

答案 0 :(得分:0)

也许您从Windows应用程序/系统日志和/或IIS日志中的相关消息中获得了更详细的堆栈跟踪和/或相关消息。

此类异常有很多可能的原因:

[1]错误的平台设置在构建时x86或x64而不是任何CPU

[2] COM类未注册(regsvr在这里可能会有所帮助,但似乎SecureBlackbox®没有注册任何COM对象..)

[3]如果确实涉及COM,它也可能被拒绝访问注册表设置

万一你已经没有看到它,这里有一些很好的技巧来解决这个令人讨厌的问题https://stackoverflow.com/a/17000027/920557。我也会尝试使用SysInternals的ProcMon ..并且力量可能与你同在。