DCOM是什么?
DCOM 实际上是一项协议,它能让软件组件以一种可靠、安全和高效的方式通过网络进行直接通讯。DCOM 以前称为“网络 OLE”,其设计使它能用在多种网络传输(包括 HTTP 等 Internet 协议)上。DCOM 以开放软件基金会的 DCE-RPC 规范为基础,并可以通过组件对象模型 (COM) 而用于 Java 语言小程序和 ActiveX® 组件。
什么是DCOM?DCOM是什么意思?
这只是个说明字样吧,#define _WIN32_DCOM 因为_WIN32_DCOM 后没有其他字符,所以在程序遇到_WIN32_DCOM的地方用空格代替。因此_WIN32_DCOM 只是在函数前说明的。
什么是DCOM?基本内容和工作原理是什么?
DCOM(分布式组件对象模型,分布式组件对象模式)是一系列微软的概念和程序接口,利用这个接口,客户端程序对象能够请求来自网络中另一台计算机上的服务器程序对象。DCOM基于组件对象模型(COM),COM提供了一套允许同一台计算机上的客户端和服务器之间进行通信的接口(运行在Windows95或者其后的版本上)。
DCOM 遇到错误“无法启动服务
单击开始,单击运行,然后键入
DCOMCNFG。选择要自动运行的应用程序。应用程序名称如下所示:
Microsoft
Word
2000/2002/2003
-
Microsoft
Word
文档
单击属性打开此应用程序的属性对话框。
单击安全性选项卡。验证使用默认的访问权限和使用默认的启动权限已选中。
单击身份标识选项卡。选择指定用户,并键入
一个管理员权限(你的ID)
的用户名和密码。
单击确定,关闭属性对话框并返回主应用程序列表对话框。
在“DCOM
配置”对话框中,单击默认安全机制选项卡。
单击访问权限的编辑默认值。验证访问权限中是否列出下列用户,如果没有列出,则添加这些用户:
SYSTEM
INTERACTIVE
Everyone
Administrators
YOUID---
IUSR_*
IWAM_*
*
这些帐户仅在计算机上安装有
Internet
Information
Server
(IIS)
的情况下才存在。
确保允许每个用户访问,然后单击确定。
单击启动权限的编辑默认值。验证启动权限中是否列出下列用户,如果没有列出,则添加这些用户:
SYSTEM
INTERACTIVE
Everyone
Administrators
YOUID---
IUSR_*
IWAM_*
*
这些帐户仅在计算机上安装有
IIS
的情况下才存在。
确保允许每个用户访问,然后单击确定。
单击确定关闭
DCOMCNFG。
启动
REGEDIT,然后验证对于要自动运行的
Office
应用程序,是否存在下列注册表项和字符串值:
Microsoft
Word
97/2000/2002/2003:
注册表项:HKEY_CLASSES_ROOT\AppID\WINWORD.EXE
AppID:{00020906-0000-0000-C000-000000000046}
其实还有其他同类的错误:
Microsoft
Access
2000/2002/2003:
是
AppID:{73A4C9C1-D68D-11D0-98BF-00A0C90DC8D9}
Microsoft
Access
97:
AppID:{8CC49940-3146-11CF-97A1-00AA00424A9F}
Microsoft
Excel
97/2000/2002/2003:
AppID:{00020812-0000-0000-C000-000000000046}
Microsoft
Word
97/2000/2002/2003:
AppID:{00020906-0000-0000-C000-000000000046}
改的方法同上面word的。
2)*******************
系统日志中的大量DCOM错误
内容如下:
Access
denied
attempting
to
launch
a
DCOM
Server.
The
rver
is:
{00020906-0000-0000-C000-000000000046}
The
ur
is
Unavailable/Unavailable,
SID=Unavailable.
这种错误只有在拨号上网的时候才发生,如果是通过网关上网,则没有这个问题。初步判断应该是不断的遭到攻击造成这个问题。于是用netstat命令检查上网时来自公网的Socket连接,发现1025端口和135端口很可疑。在防火墙中屏蔽了这两个端口后,问题解决。(只屏蔽一个端口似乎不能完全起作用,还会有一部分DCOM错误记录下来,只是频率降低了。)
系统日志中的大量DCOM错误之补充
今天发现还需要屏蔽TCP的445端口才能完全杜绝系统日志中的DCOM错误。
日志文件里出现DCOM错误码是因为我的防火墙的路由器的DMZ指向我的机器。把DMZ一关日志文件马上就没有出现DCOM错误,断定是第二类错误。
Dcom配置怎么打开
用户的建立及配置
在服务器计算机上建立一个用户,如OPCUr,可以是一般用户,服务器计算机在运行OPC服务器时必须以这个用户登录。
在服务器计算机上建立一个用户组,如OPCClients。
在OPC客户计算机中,建立OPCUr用户,口令也要与服务器上的一致,可以设为普通用户以保证安全。
在客户和服务器计算机上都建立ClientA、ClientB等用户,且密码一致。
在服务器计算机上将ClientA、ClientB等用户都加入到OPCClients组中。客户计算机用这些用户登录。
OPC服务器计算机的DCOM设置,运行dcomcnfg,进行如下设置:
默认属性:启用DCOM;
默认身份验证级别:连接
默认模拟级别:标识
至少要保证OPCClients组允许访问,也可放宽至Everyone;
默认启动权限:至少保证允许INTERACTIVE用户调用;
默认配置权限:一般情况下不需修改。
默认协议:保证面向连接的TCP/IP在最上。
OPC服务器配置:
常规:身份验证级别为默认值;
位置:在这台计算机上运行;
安全性:使用默认的访问和启动权限,配置权限不要修改;
身份标识:交互式用户。
终结点:不修改。
客户计算机的DCOM配置:为了保证OPC数据订阅等回调机制能正常运行,需要对客户计算机的DCOM权限进行配置。 默认属性、默认协议的配置和服务器端基本一致;默认安全机制只需要修改默认访问权限。保证允许OPCUr访问。也可放宽至Everyone。
系统设置
防火墙:
对于安装了第三方防火墙软件的计算机,可尝试配置允许OPC客户及服务器程序通过,或直接停止防火墙服务。
对于启用了操作系统(XP SP2、Server 2003等)自带防火墙的情况,可按OPC基金会提供的文档《Using OPC via DCOM with XP SP2》中描述的进行配置,或直接关闭防火墙。
注意:客户、服务器计算机都要配置。
安全策略:(XP、Server 2003等)
“控制面板 -> 管理工具 -> 本地安全策略 -> 本地策略 -> 安全选项”中,
“网络访问:本地帐户的共享和安全模式”项设置为:
“经典 - 本地用户以自己的身份验证”
注意事项:
连不通时首先检查网络是否正常;
用户密码不要设置为空。
怎么解决无法启动 DCOM 服务器
1、在启动【SQL Server 代理 (MSSQLSERVER)】服务时,弹出窗口。
2、右键单击代理服务,选择【属性】打开属性对话框。
3、切换到【依赖关系】选项卡,我们可以看见它与【SQL Server(MSSQLSERVER)】服务存在依赖关系。
4、鼠标右键单击【SQL Server(MSSQLSERVER)】,选择【启动】。
5、打开SQL的网络配置,禁用VIA服务。
6、启用【SQL Server(MSSQLSERVER)】服务成功。
7、再次启动代理服务,发现可以顺利启动了。
8、已经成功解决该问题