c#OPC Automation提供80040154

问题描述 投票:4回答:6

我是.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).

请帮我。

提前致谢!

c# opc
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

1
投票

如果使用OPC客户端工具包SDK(C ++),远程注册表服务的问题也可能导致此错误。

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

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


0
投票

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


0
投票

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

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


0
投票

虽然这是一篇很老的帖子,但我想分享一下我的解决方案。

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

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

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

希望这可以帮助!


0
投票

OPC dll仅适用于32位,我的解决方案是在IIS中相对应用程序池的高级设置中将“启用32位应用程序”更改为True。

App Pool

Advanced definition of APP pool in IIS

© www.soinside.com 2019 - 2024. All rights reserved.