Interop.OpcAutomation.dll无法连接到Remote Opc服务器。错误:访问被拒绝

时间:2015-04-14 19:35:16

标签: c# .net server dcom opc

我正在尝试使用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服务器,这迫使我得出服务器端配置正常的结论。
  3. 所以任何人都试图制作一些可以访问远程opc服务器的C#客户端,请告诉我还需要做些什么?

3 个答案:

答案 0 :(得分:1)

在您的计算机上创建一个本地用户,该用户的用户名和密码与服务器上的用户名和密码相同。右键单击visual studio并使用该用户进行运行。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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