【问题标题】:Interop.OpcAutomation.dll not able to connect to Remote Opc server. Error : Access DeniedInterop.OpcAutomation.dll 无法连接到远程 Opc 服务器。错误:拒绝访问
【发布时间】:2015-06-20 13:41:06
【问题描述】:

我正在尝试使用 C# 从客户端连接远程 OPC 服务器。我从 OPC 基金会获得了 Interop.OpcAutomation.dll,它与本地 opc 服务器工作得非常好,但是当连接远程 opc 服务器时,它以某种方式显示访问被拒绝(HRESULT: 0x80070005 (E_ACCESSDENIED))。

代码如下:

this._reqServer = new OPCServer();
this._reqServer.Connect("OPC.SimaticNET.1", "MachineName"); //Here it throws exception

所以这里我已经尝试过:

  1. 在 MyComputerProperties 和 OPCEnum 中配置 DCOM 中的权限。
  2. 我检查了 OpcQuickClient 等第三方客户端,它可以从同一个客户端访问远程 opc 服务器,这迫使我得出服务器端配置正常的结论。

所以有人尝试制作一些可以访问远程opc服务器的C#客户端,请告知还需要做什么??

【问题讨论】:

标签: c# .net server dcom opc


【解决方案1】:

在您的计算机上创建一个与服务器上的用户名和密码相同的本地用户。右键单击 Visual Studio 并以使用该用户的身份运行。

【讨论】:

  • 是相同的用户名和相同的密码。
【解决方案2】:

+1 为 ambassallo 的回答。我在两个不同的连接网络上有两台服务器(Win Server 2016 服务器)。一台服务器在域上,另一台是独立的。我在它们之间建立了一个 OPC-DA 连接。让它们连接的唯一方法(在设置所有 DCOM、OPCEnum 等并删除防火墙后,以相同的 Windows 用户(每台服务器上的本地用户)登录两台机器,然后将客户端连接到服务器。

【讨论】:

    【解决方案3】:

    我的方法是将服务器的访问权限授予本地组,在服务器端创建一个用户并将该用户定义为我创建的本地组的成员。在客户端计算机中使用相同的密码创建相同的用户后,我在服务器端使用了相同的密码。调整所有 DCOM 权限,重新启动并尝试连接。别忘了,不要在任何地方使用 NAT。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-22
      • 2017-04-28
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-04
      相关资源
      最近更新 更多