分布式组件对象Distribute Component Object Model(DCOM)的配置

       分布式组件对象Distribute Component Object Model(DCOM)的配置

                                                 上海博达数据通信有限公司 VOIP项目部 龚超

一.             进程内组件(DLL)的配置

1) 组件端(Component)或服务器端(Server)的配置(远程)

Windows XP系统为例.

 

a)书写并用MIDL编译IDL和组件代码生成*.h,dlldata.c,*_i.c,*_p.c,*.tlb等文件

b)*.def文件格式如下:

c) 书写*.mk文件格式如下用来编译残根(Stub)和代理(Proxy)

d)nmake /f *.mk编译上述的MK文件编译生成残根(Stub)和代理(Proxy)

e)编译组件代码生成组件(DLL)

f)regsvr32 *.dll注册组件

g) regsvr32  stub/proxy.dll注册代理

h) regedit.exe打开注册表,并用GuidGen.exe生成一个ID

             

{8AF1E59E-D92F-41ac-A190-482FE0E7035A}

在注册表项[HKEY_CLASSES_ROOT/AppID]下面新建一个项名字为{8AF1E59E-D92F-41ac-A190-482FE0E7035A},并在下面新建一个字串命名为DllSurrogate,其数据可命名为自己编写的代理托管程序的路径及程序名,或为空(表示使用系统默认的代理托管程序dllhost.exe)如图:

I)进到注册表的[HKEY_CLASSES_ROOT/CLSID]键下,找到注册组件的GUID打开GUID,新建一个字串名AppID,数据为h)步骤生成的GUID,同样在他的代理残根键下也新建一个字串名AppID,数据为h)步骤生成的GUID.

CLSID健中不能设置LocalServer32LocalServerLocalService等子健。CLSID中要包含InProcServer32子健.

在代理残根(STUB/PROXY)的InProcServer32中,其内键値为所在服务器注册的代理残根的DLL的路径。

在组件侧CLSID中的InProcServer32中的默认路径为组件的路径。

j)运行Dcomcnfg.exe进行DCOM配置.出现界面

选中h)步骤生成的GUID.右键点属性

自定义中加入GUEST帐户,GUEST帐户不能被禁用.

 

 

 

k)本机运行客户程序进行测试.

l)组件ID参考下图:

m)如果有多个组件需要配置请重复步骤I)

n)如果要生成多个APPID请重复步骤h)---k)

 

2) 调用端或客户端(Client)的配置

Windows98配置为例;

a) regsvr32 *.dll注册组件

b)regsvr32  stub/proxy.dll注册代理

c)regedit.exe打开注册表,进入AppID键项,在注册表项[HKEY_CLASSES_ROOT/AppID]下面新建上面组件端生成的GUID{8AF1E59E-D92F-41ac-A190-482FE0E7035A},并在下面新建一个字串命名为RemoteServerName,远程组件所在的机器名如//GC如图:

d):进到注册表的[HKEY_CLASSES_ROOT/CLSID]键下,找到注册组件的GUID打开GUID,新建一个字串名AppID,数据为组件端配置h)步骤生成的GUID,同样在他的代理残根键下也新建一个字串名AppID,数据为组件端配置h)步骤生成的GUID{8AF1E59E-D92F-41ac-A190-482FE0E7035A}.如图

e)删除组件对应键下InProcServer32项下的默认值即本地组件的地址(清空)如图

f)保留残根/代理的InProcServer32下默认的代理地址如图

g) CLSID健中不能设置LocalServer32LocalServerLocalService等子健。CLSID中要包含InProcServer32子健.

h)运行Dcomcnfg.exe进行DCOM配置.出现界面依次配置

 

 

后面为点Property后出现:

 

 

 

i)配置完成,本机运行客户程序进行测试.

j)如果有多个组件需要配置请重复步骤d)—g)

k)如果要生成多个APPID请重复步骤c)---h)

 

二.             进程外组件(EXE)的配置

1)      组件端配置

Windows XP系统为例.

同进程内组件端j)---k)

2)      客户端配置:

Windows 98系统为例.

运行进程外组件进行自注册,或运行命令*.exe /regserver

然后:

 

 

后面为点Property后出现:

 

 

 

 

 

配置完成,本机运行客户程序进行测试.

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值