关于OPC通讯做的比较多了。但是OPC的DCOM配置一直没认真去查资料,专心去整。这可能是因为我在测试程序的时候都是把服务器跟客户端在同一台电脑上运行,这样就不要配置DCOM。现在来记录一下下个人在网上查找的资料吧。
http://www.cnblogs.com/johnpher/archive/2012/10/27/2742207.html
我首先是根据第一个博客提供的方法配置了一下,然后用OPC客户端连接的时候,没有成功。提示
“ 对 COM 组件的调用返回了错误 HRESULT E_FAIL。 ”
然后我又按照第二个博客的办法配置了一下,OPC客户端就可以连的上远程的OPC服务器了。所以只能说我这次成功了,但不知道我有没有多余的配置。
下面来说说我做的吧。
(1)服务器的配置
a)安装 NWLink IPX/SPX/NetBIOS Compatible Transport Protocol 协议
在“网络连接”里面找到你用的那个网络端口,比如说我用的是无线上网,选择“无线网络连接”,右击“属性”。
![](https://images0.cnblogs.com/i/608721/201405/241054125908130.jpg)
在以上页面中点击“安装” —— “协议”——找到那个协议安装。(我的那个协议已经装过了,所以在列表中可以看到)。
b)关闭防火墙跟杀毒软件。在服务器机跟客户端机都需要。
c) 运行dcomcnfg
![](https://images0.cnblogs.com/i/608721/201405/241058141529064.jpg)
在如下图的“我的电脑”的属性页中配置:
![](https://images0.cnblogs.com/i/608721/201405/241100055122611.jpg)
在以下的选项卡里面设置:
![](https://images0.cnblogs.com/i/608721/201405/241339250129729.jpg)
![](https://images0.cnblogs.com/i/608721/201405/241348120279522.jpg)
在“COM安全”选项添加Administrator、ANONYMOUS、LOGON Guest、everyone、Eason(这个是我电脑的登陆名,这里也设置了)
然后每一个都把权限给勾上。
![](https://images0.cnblogs.com/i/608721/201405/241353585591324.jpg)
d)在OPC服务器上,还要回到“组件服务”界面,打开"DCOM配置",找到注册的OPC服务器的名称选项,打开它的属性。
![](https://images0.cnblogs.com/i/608721/201405/241356134654108.jpg)
![](https://images0.cnblogs.com/i/608721/201405/241359259341209.jpg)
![](https://images0.cnblogs.com/i/608721/201405/241359515438317.jpg)
![](https://images0.cnblogs.com/i/608721/201405/241400060276591.jpg)
(注:有时做好dcom配置后,需要重新启动电脑才起作用。所以为了安全起见,建议最好重新启动一下电脑,再做下一步)。
e)本地安全策略配置
1、OPC服务器和OPCClient服务器都要设置:打开“控制面版”——“管理工具”——打开“本地安全策略” 安全选项——”网络访问:本地帐户的共享和安全模式”——属性
![](https://images0.cnblogs.com/i/608721/201405/241404111997123.jpg)
注:如果不配置这个,那么在连接OPC服务器的时候,就会出现拒绝访问的现象。
(2)客户端的配置
客户端按照以上服务器的
a)、b)、c)、e)配置,然后就可以连接的上了。
附一些可能的配置方法:
一、在装有某OPC SERVER的机器上。DCOM配置如下
1. 运行服务器上的dcomcnfg程序,进行DCOM配置。
2. 进入DCOM的总体默认属性页面,将“在这台计算机上启用分布式COM”打上勾,将默认身份级别改为“无”。
3. 进入DCOM的总体默认安全机制页面,确认默认访问权限和默认启动权限中的默认值无EveryOne,
如果不去掉EveryOne,应用服务器不能正常启动。
4.在常规页面中,双击你的应用服务器,打开你的应用服务器DCOM属性设置。
5.将常规页面中的身份验证级别改为“无”。
6.位置页面中选上“在这台计算机上运行应用程序”。
7.将安全性页面设置中,均选择“使用自定义访问权限”,编辑每一个权限,将EveryOne加入用户列表中。
8.身份标识页面中,选择“交互式用户”。
注意NT的GUEST用户不能禁用。
二、在客户端机器上DCOM配置如下:
1后点”开始”->”运行”,输入”dcomcnfg”,然后回车,启动dcom配 置。
2. 常规页面中,双击你的应用服务器,打开你的应用服务器DCOM属性设置。
3. 将常规页面中的身份验证级别改为“无”。
4. 身份标识页面中,选择“交互式用户”。
5. 位置页面中,选择“在这台计算机上运行应用程序”。
进入DCOM的总体默认属性页面,将“在这台计算机上启用分布式COM”打上勾,将默认身份级别改为“无”。
两端配置好后,客户端机器就可以访问远方机器的OPCSERVER了
1. 运行服务器上的dcomcnfg程序,进行DCOM配置。
2. 进入DCOM的总体默认属性页面,将“在这台计算机上启用分布式COM”打上勾,将默认身份级别改为“无”。
3. 进入DCOM的总体默认安全机制页面,确认默认访问权限和默认启动权限中的默认值无EveryOne,
如果不去掉EveryOne,应用服务器不能正常启动。
4.在常规页面中,双击你的应用服务器,打开你的应用服务器DCOM属性设置。
5.将常规页面中的身份验证级别改为“无”。
6.位置页面中选上“在这台计算机上运行应用程序”。
7.将安全性页面设置中,均选择“使用自定义访问权限”,编辑每一个权限,将EveryOne加入用户列表中。
8.身份标识页面中,选择“交互式用户”。
注意NT的GUEST用户不能禁用。
二、在客户端机器上DCOM配置如下:
1后点”开始”->”运行”,输入”dcomcnfg”,然后回车,启动dcom配 置。
2. 常规页面中,双击你的应用服务器,打开你的应用服务器DCOM属性设置。
3. 将常规页面中的身份验证级别改为“无”。
4. 身份标识页面中,选择“交互式用户”。
5. 位置页面中,选择“在这台计算机上运行应用程序”。
进入DCOM的总体默认属性页面,将“在这台计算机上启用分布式COM”打上勾,将默认身份级别改为“无”。
两端配置好后,客户端机器就可以访问远方机器的OPCSERVER了