4

我是 .Net 开发人员。OPC 新手。当我尝试一些 OPC 客户端示例时,它们都给出了这个错误。看来 DLL 似乎没有注册。但我不知道如何以及在哪里注册。

error: retrieving the COM class factory for component with CLSID failed due to the following error: 80040154

即使我试过这个

regsvr32 Interop.OPCAutomation.dll", 

但它也会引发错误

The module "Interop.OPCAutomation.dll" was loaded but the entry-point DllRegisterServeer was not found.
Make sure that "Interop.OPCAutomation.dll" is a valid DLL or OCX file and then try again.

我浏览了很多现有的论坛。他们中的许多人说要将平台目标更改为 x86,但我仍然遇到同样的问题。仅供参考,我只能在项目属性的“构建”选项卡顶部的“平台”选项中看到“活动(任何 CPU)”。

这是我的环境详细信息:

.Net 2005
OPCAutomation Weapper
Windows 7 64-bit OS
Dell Inspiron 1525 (I hope this is not a 64bit machine, but my engineer installed 64bit OS somehow).

请帮我。

提前致谢!

4

6 回答 6

5

以防万一有人正在处理这个问题(就像我最近......)我解决了!一段时间后,我发现这与在 64 位机器上运行的 .NET 框架有关。只要 .NET 应用程序仅适用于 32 位 CLR,我们必须将 .NET 框架设置为在 WOW 模式下加载 CLR。为此,请键入:

C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\Ldr64.exe SetWow

在此之后,您应该能够运行应用程序。

您可以通过键入以下内容返回并恢复以前的 .NET Framework:

C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\Ldr64.exe Set64
于 2012-09-05T11:43:51.940 回答
1

如果使用 OPC Client Toolkit SDK (C++),远程注册服务的问题也可能导致此错误。

在 Windows 7 上,默认情况下,远程注册表服务设置为手动且未启动。确保在您要部署到的所有计算机上启动远程注册表服务。这可以手动完成,也可以使用组策略完成。

GetCLSIDFromRemoteRegistry() 函数使用 RemoteRegistryService 来获取 OPC 服务器的 CLSID。如果此服务未在客户端计算机上启动,则 OPC 程序可能会返回错误 80040154。

于 2014-08-30T21:34:15.787 回答
0

您收到的错误很可能是由于 OPC 服务器未正确注册。确保它已注册(通常通过在命令行中使用“/regserver”或“/service”参数运行它)。也可能存在安全问题,在这种情况下您必须运行“dcomcnfg”(DCOM 配置)以确保客户端可以访问服务器。

于 2012-02-20T20:13:34.143 回答
0

这个问题有点过时了,所以我希望你现在明白了,但我有同样的问题,想分享我的解决方案。就我而言,我使用的是 Kepware 服务器。如果您在未安装服务器的机器上使用 Interop.OPCAutomation 编译并尝试为此服务器运行客户端应用程序,如果您尝试注册 dll,您将收到 dll not registered 错误和“找不到入口点”手动。

解决方案:确保您已安装并运行服务器。

于 2013-09-19T12:11:22.147 回答
0

The OPC dll only works in 32 Bits, my solution was to change the "Enable 32-Bit Applications" to True in the advanced settings of the relative app pool in IIS.

App Pool

Advanced definition of APP pool in IIS

于 2017-04-19T13:18:38.440 回答
0

虽然这是一个旧帖子,但我想分享我的解决方案。

我的问题是,当我尝试使用 OPCAutomation.dll 安装应用程序时,它给了我 80040154 错误,因为该类未注册。

这是我的解决方案,始终具有管理员权限:

  1. 将 OPCDAAuto.dll 复制到“C:\Windows\System32”文件夹中
  2. 在 cmd 提示符下键入“C:\Windows\System32\regsvr32 opcdaauto.dll”
  3. 你应该看这样一条消息: 图片

希望这可以帮助!

于 2016-11-29T10:30:49.833 回答