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

王朝other·作者佚名  2006-01-09
宽屏版  字体: |||超大  

分布式组件对象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后出现:

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有