COM互操作对象在一个项目中抛出InvalidCastException但在其他项目中不抛出

我有一个我在测试C#解决方案中导入的COM对象。 一切正常,并继续这样做。

然后我在我的实际解决方案中导入了相同的COM对象,并且作为测试实现了与测试项目中完全相同的行
当我运行真正的项目时,我得到一个InvalidCastException

无法将“CTWebReport.WebReportCOMClass”类型的COM对象强制转换为接口类型“CTWebReport.IWebReportCOM”。 此操作失败,因为对于具有IID“{5DFA18E8-4E71-4ADC-A812-6B166C242561}”的接口的COM组件上的QueryInterface调用由于以下错误而失败:不支持此类接口(HRESULTexception:0x80004002(E_NOINTERFACE)) 。

我在整个系统中搜索了对interop和com库的每个引用,这包括我能找到的所有bin和obj文件夹。 除了原始的COM库之外,我将它们全部删除,并且为了更好的措施清理了我的回收站。
没有区别,完全相同的情况。 测试项目工程,实际项目没有。

编辑
似乎COM在winforms应用程序中工作,但不在我的类librar中(由asp.net mvc web applicatoin使用)。

我不知道接下来该做什么。 建议?

不同之处在于线程化。 winform线程从主线程执行代码,而asp.net没有。 它是通过在STAThread中显式运行COM来解决的。

由于您的COM组件在WinForm应用程序中工作但在ASP.NET中没有,我认为您可能会遇到一些权限问题。 您是否可以暂时提升ASP.NET运行的权限(例如管理员)并查看您是否可以执行该组件?