clq

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

com+ 三层布署[未成功验证]

http://topic.csdn.net/u/20070910/10/f6c7614f-cdae-46a7-a9cd-87fdc6776698.html


我的系统为三层的
客户端:client,远程调用应用服务器上的com+
应用服服务器:com+组件
数据库服务器:oralce
原来在开发环境没有发现问题。
现在部署到正式环境出现问题。
client端程序调用远程的com+的时候,会报interface   not   support。
但是如果在client的机器上的组件服务中也增加一个新建一个应用程序,并且将应用服务器上的com+都加入这个新建的应用程序中后,client程序就能正常调用远程的com+了。
我该怎么办呢?


   
#1楼 得分:0回复于:2007-09-10 20:50:37
不太明白


   
#2楼 得分:30回复于:2007-09-11 19:51:04
几年前我正好做过类似的应用,还记得一点,给你Share一下:
客户端调用COM+组件是不需要指定服务器名字的,只需要根据COM组件的GUID或Prog   ID调用用CoCreateInstance()创建组件就可以,和调用普通的COM组件没什么区别,至于要指定某个服务器,。

1,在Server上创建一个COM+应用程序,把你的COM组件添加到你的COM+应用程序。
2,在Server机器上的   COM+   管理界面里导出该COM+应用程序到一个供客户端用的MSI包。
3,在客户机器上安装2步导出的MSI包,这样,在这台客户机上的对指定GUID或Prog   ID组件的所有调用请求会指向到导出该MSI包的server上了。
正是通过这者MSI包导出,安装,来做到配制COM+得到简化。你只需要在Server上配置一次,不需要到每台客户机重新配置


   
#3楼 得分:0回复于:2007-09-12 12:28:29
jucee(不断追求,不断修正)   :
我现在就是通过将服务器上的应用程序代理(msi文件)
然后在客户端安装这个msi
但是我客户端调用的是后还是需要   指定服务器地址以及服务器上的用户名和密码。
但是我觉得这样太麻烦了。

是不是就这一条路可以走了。


   
#4楼 得分:0回复于:2007-09-12 18:55:12
客户端调用的时候还是需要指定服务器地址以及服务器上的用户名和密码?
应该不需要的,你可以在Client机器上的COM+应用程序里配置用户名和密码的。


   
#5楼 得分:0回复于:2007-09-13 16:27:18
jucee(不断追求,不断修正):
请问您这样做过吗

   
#6楼 得分:20回复于:2007-10-14 23:00:25
你的这种三层结构非常典型,2005年我采用的结构与你差不多,只是后端数据库是ACCESS,由于我的这个系统已经停用1年多了,架构时的一些考虑也已经淡忘,我这两天抽时间整理下,或许对你有一些帮助。另,“找不接口”这个问题是一个比较经典的问题,你可以在网上找一下,以前的COM从书中有对此问题的解释,我想不外是两种原因1、激活了远程COM+对象,只是在取的IAppServer接口时被阻止,这就是安全问题。2、你的远程激活代码中是不是采用一次性取得IAppServer接口,如果是,请看下我BLOG上的代码,试一试分两次取得,这样虽然需要2次网络ROUTE,但是好象能够工作


   
#7楼 得分:0回复于:2007-10-15 15:18:53
看看,你的接口里面是不是用了COM以外的数据类型?
另外就是权限了

posted on 2011-10-04 12:34  clq  阅读(363)  评论(0编辑  收藏  举报