远程com服务器无法启动

cbc 2001-08-03 11:30:31
本机上com服务器正常启动,但当com服务器放在远程机器上,客户端却无法启动它
,并且已在dcomcnfg中设置而且启动RPC服务,一切办法都想过,但还是不行,请各位大侠帮忙,谢谢!
...全文
166 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
cbc 2001-08-10
  • 打赏
  • 举报
回复
给分
wolf_shi 2001-08-05
  • 打赏
  • 举报
回复
问题已经解决
cbc 2001-08-04
  • 打赏
  • 举报
回复
wyzegg(蛋)
1. 代理问题
你说的“6698c102-8e22-4e93-a9cd-ba4421901cb8”找不到呀!
Corny 2001-08-04
  • 打赏
  • 举报
回复
从你说的问题看,你只要将COM加入MTS中即可。就是在MTS环境中创建一个包,并把组件加进去就可以了,因为代理是通过MTS环境来创建COM实例的。(MTS在Option pack盘上)
wyzegg 2001-08-04
  • 打赏
  • 举报
回复
可以到文档中心看我的例子程序代码
http://www.csdn.net/filebbs/read_topic.asp?id=386
wyzegg 2001-08-04
  • 打赏
  • 举报
回复
自己用uuidgen.exe生成一个自己写进注册表
也可以在组件里写,本来组件的注册就是导入这些内容,在函数DllRegisterServer里的
wyzegg 2001-08-03
  • 打赏
  • 举报
回复
上面的说明应该可以解决问题
wyzegg 2001-08-03
  • 打赏
  • 举报
回复
1. 代理问题
进程内组件为dll,当需要远程调用时需要在本地有一个代理程序,缺省的代理
程序是dllhost.exe。需要在
HHEY_CLASSES_ROOT\APPID\6698c102-8e22-4e93-a9cd-ba4421901cb8
下添加字符串值dllsurrogate值为代理程序所处的位置,
如果值为空表示使用缺省代理。
2. 调度问题
微软只实现啦IDsiaptch接口的调度,如果我们希望在远程调用客户程序中使用自定义接口
就需要实现接口的调度程序,幸运的是,MIDL已经为我们产生了标准调度代码,我们只需要使用这些代码
生成一个DLL的调度程序。这些代码包括xxx_i.c,xxx.p.c,xxx.h.这些代码可以自动的导出
DllGetClassObject
DllCanUnloadNow
DllRegisterServer
DllUnregisterServer
函数
这样我们可以建立一个WIN32 DLL的工程添加一个DEF文件编译后,在服务器和客户端注册。
就是一个一个标准的调度程序,在该DLL的支持下可以实现自定义接口的远程调度。
注册表项为
[HKEY_CLASSES_ROOT\CLSID\{C4A7C2E7-5EAC-4367-8F0D-59ECDB66CE3B}]
@="PSFactoryBuffer"
[HKEY_CLASSES_ROOT\CLSID\{C4A7C2E7-5EAC-4367-8F0D-59ECDB66CE3B}\InProcServer32]
@="调度程序路径"
"ThreadingModel"="Both"
[HKEY_CLASSES_ROOT\Interface\{C4A7C2E7-5EAC-4367-8F0D-59ECDB66CE3B}]
@="ISObject"
[HKEY_CLASSES_ROOT\Interface\{C4A7C2E7-5EAC-4367-8F0D-59ECDB66CE3B}\NumMethods]
@="方法数目"
[HKEY_CLASSES_ROOT\Interface\{C4A7C2E7-5EAC-4367-8F0D-59ECDB66CE3B}\ProxyStubClsid32]
@={C4A7C2E7-5EAC-4367-8F0D-59ECDB66CE3B}
以上注册表项都是有调度程序自动注册的
3.客户端的问题
远程服务器的名字 可在注册表中用remoteservername指定
也可以在程序中指定,
下面例子就是在程序中指定的
4.安全性问题,
包括公开的安全性和编程的安全性
如果允许匿名用户访问则指定guest或network或internet内置用户的访问
当然也可以指定用户访问。
5.remark
a.如果是DLL的组件,要远程调用需要代理程序的支持,如果有代理程序并且组件支持IDispatch接口,
则可以使用IDispatch远程访问。
b,如果是DLL的组件,要远程调用,使用自定义接口。则不仅需要代理程序的支持也需要proxy/stub调度
程序的支持
c.exe的组件不需要代理程序,但是如果使用自定义接口仍然需要调度DLL的支持。
两者都可以使用公开的安全性和编程的安全性
6.mts
mts是COM运行的平台,已经上述功能,并且可以导出客户端的安装。有很方便的管理
yangmajituipo 2001-08-03
  • 打赏
  • 举报
回复
高手请再到
http://www.csdn.net/expert/topic/217/217738.shtm
一看,分值超700

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧