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

类别:编程语言 点击:0 评论:0 推荐:

       分布式组件对象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健中不能设置LocalServer32、LocalServer、LocalService等子健。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健中不能设置LocalServer32、LocalServer、LocalService等子健。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后出现:

 

 

 

 

 

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

 

 

本文地址:http://com.8s8s.com/it/it23569.htm