3

在我的新 Windows 8 64 位机器上编译我的 C# 后,在我的 OPC 客户端应用程序中获取可用服务器列表时,我开始收到以下错误。

“OpcNetApi.Com 无法将类型为“System.__ComObject”的 COM 对象转换为接口类型“OpcRcw.Comn.IOPCServerList2”。此操作失败,因为对具有 IID 的接口的 COM 组件调用 QueryInterface '{9DD0B56C-AD9E-43EE -8305-487F3188BF7A}' 由于以下错误而失败:未注册类(来自 HRESULT 的异常:0x80040154 (REGDB_E_CLASSNOTREG))。”

可能是什么原因?

4

4 回答 4

10

引用自 OPC.NET 自述文件:

.NET COM 互操作程序集是针对 32 位版本的代理/存根构建的。这意味着在 x64 系统上运行的任何 .NET 应用程序都必须编译并作为 32 位应用程序运行

于 2013-08-14T14:38:22.010 回答
7

嗨:要解决此问题,请安装 OPC .NET API OPC .NET API 2.00 Redistributables 105.1,然后安装 OPC Core Components Redistributable (x64) 105.1。有了这个,您可以连接到运行在 32 位上的 OPC 服务器和运行在 64 位上的客户端。

于 2014-05-20T01:48:23.050 回答
2

并且不要忘记,在您的文件中引用的 Redistributables(OPC .NET API OPC .NET API 2.00 Redistributables、OPC Core Components Redistributables)和库(OpcNetApi.dll、OpcNetApi.Com.dll、OpcNetApi.Xml.dll...)项目必须是相同的版本。

于 2016-04-24T07:51:26.950 回答
-1

我认为唯一的问题是您尝试使用不同的用户名和密码连接到远程计算机您必须在远程计算机上创建与本地计算机用户名和密码相同的当前用户然后您必须在远程计算机上配置“组件服务”->控制台根-> 组件服务-> 计算机-> Dcom 配置-> OpcEnum 设置并在属性中授予该用户的访问权限-> 安全性我的问题通过这种方式解决了祝你好运

于 2019-01-31T11:43:52.630 回答