即使在注册表中注册了COM组件,也出现错误“无法创建ActiveX组件”

我有一个用c#编写的Windows服务。该服务托管在Windows Server 2016中。
此服务每隔相等的时间间隔执行一些计算。要进行此计算,它将在后台打开一个名为AutoCal的应用程序,该应用程序是COM组件。
该应用程序已安装在服务器中,其dll被添加为服务中的引用。

首先,该机器的版本为V4.1。我写了以下代码来打开应用程序。

(AutoCal.Application)Interaction.CreateObject("AutoCal.Application.NewInstance")

它曾经在后台打开,并且可以按预期正常运行。现在,应用程序版本已升级到V4.2,并卸载了旧版本。

当我运行相同的服务时,它会显示一个异常:

无法创建activeX组件。

搜索之后,我将上面的代码行更改为此,以查看是否有效:

(AutoCal.Application)activator.CreateInstance(Type.GetTypeFromProgID("AutoCal.Application.NewInstance"))

但这给出了一个完全不同的错误,如下所示。

使用CLSID检索组件的COM类工厂 {xxxxxx-xxxxx-xxxxxx-xxxxxxx}由于以下错误而失败: 80080005服务器执行失败(HRESULT的异常:0x80080005 (CO_E_SERVER_EXEC_FAILURE))

我已经搜索了此错误并确认是否已注册新的v4.2。我观察到只有V4.1在位置处的注册表中注册了

HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ CompanyName \ AutoCal \ V4.1。

所以我也使用以下命令注册了V4.2:cd windows\SysWOW64 --> regsvr32 "Path of .ocx file"

即使那样,它也给出了错误。

此外,由于AutoCal应用程序也是32位应用程序,因此我尝试构建窗口服务代码X86而不是anycpu并部署在服务器中。但这也不起作用。

我还有其他需要它解决的问题。在这方面的任何帮助都是非常有帮助的。谢谢。

PS:如果此信息有用,则服务器是64位计算机,AutoCal是32位应用程序。

Hh708870464 回答:即使在注册表中注册了COM组件,也出现错误“无法创建ActiveX组件”

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2744636.html

大家都在问