请精通com+的调试、安装及部署的高手现身。

wenxuanguo 2003-12-22 11:12:19
各位高手,我最近一直被com+的部署问题困扰,把论坛上的各种关于com+的帖子搜了个便,也没有搞懂个所以然。下面我现把我在这方面遇到的各种问题都描述一下,而且这也是大多数网友所遇到的。
1.如果我在winxp下编译com+的DLL,并且在winxp部署com+的服务器。本机直接运行客户端软件,一切均正常。但是导出的com+代理,在win2000上安装的时候提示无法注册,安装代理失败。
2.如果我把winxp下编译好的com+dll在win2000pref上部署成com+服务器,在服务器本机上直接运行客户端一切正常。导出代理,安装到其他win200pref上,安装正常,但是运行客户端,提示权限拒绝。但是在我的开发环境winxp下运行客户端正常。
3.直接在win2000pref上编译com+的dll,并进行部署。在本机运行客户端一切正常。导出代理,安装到其他win2000pref上后,运行客户端,错误提示“加载dll失败”。将代理安装到winxp上,运行客户端,错误提示也一样。我在winxp下对客户端进行调试,在调试前也确认了引用的库包括的了C:\program files\complus...下我代理生成的库。运行客户端进行跟踪,发现程序执行到需要实例化在com+里写的那个类的时候,发生错误,提示“加载dll失败”。
上述三个问题已经困扰我很久,而且经常是一会出现这个一会出现另外一个,请那位高手能够详细的从原理上讲解一下com+的dll在编译和部署的时候到底需要注意什么。
注:我开发环境是vb6,winxp,编写的COM+组件只是一个数据库连接组件,封装了一些数据库的操作。引用的库包括ado2.6.
希望各位高手能够透彻的讲一下com+的编译’安装、部署,包括在各种环境下应该注意的问题。我想所有csdn上关心com+问题的同学都会感谢你们的。
谢谢


...全文
7 点赞 收藏 14
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
wenxuanguo 2003-12-22
各位同学帮忙顶呀
回复
flc 2003-12-22
关注
回复
jornet 2003-12-22
帮你顶
回复
wenxuanguo 2003-12-22
请高手现身
回复
wenxuanguo 2003-12-22
那篇文章我看了,帮助不是很大。因为他必尽只是一个设置步骤的描述,我希望那位高手能够从原理上透彻的讲一下com+的安装、部署。调试
回复
wenxuanguo 2003-12-22
第三个问题最奇怪,我以前直接用winxp下编译好的COM+的dll在win2000pref下部署com+sever的时候,很正常。我的winxp做客户机,一切正常。但是把代理安装到其他wind2000pref的时候,运行客户端提示的是拒绝的权限。现在我在win2000pref下从新编译COM+DLL,然后导出代理,居然在我自己winxp下,运行客户端也提示加载dll失败。新装了一台win2000pref,安装代理后,运行客户端提示还是加载dll失败。我彻底晕了
回复
online 2003-12-22
http://expert.csdn.net/Expert/topic/2342/2342453.xml?temp=.2852594
回复
online 2003-12-22
3.感觉好像没有注册成功

学习com+不深入,惭愧


回复
wenxuanguo 2003-12-22
可是在winxp下导出1.0的代理时候,总是提示导出失败。
回复
online 2003-12-22
2.如果我把winxp下编译好的com+dll在win2000pref上部署成com+服务器,在服务器本机上直接运行客户端一切正常。导出代理,安装到其他win200pref上,安装正常,但是运行客户端,提示权限拒绝。但是在我的开发环境winxp下运行客户端正常。

权限的问题,你可以使用一个用户登录到com+服务器,或者使用dcomcnfg配置

回复
online 2003-12-22
1.如果我在winxp下编译com+的DLL,并且在winxp部署com+的服务器。本机直接运行客户端软件,一切均正常。但是导出的com+代理,在win2000上安装的时候提示无法注册,安装代理失败。
winxp下的com+是1.5的,win2000下是com1.0
可能是版本的问题
安装之前确保win2000没有安装过
回复
online 2003-12-22
其中:”安装预建应用程序”选项是为安装第三方应用程序而设计的。这些应用程序是扩展名为MSI的安装程序文件。

4. 我们点击”创建一个空的应用程序”,应为我们要开发自己的应用程序。
出现下图,这个对话框让用户为应用程序输入一个名字。它还让用户选择建立库应用程序还是服务器应用程序。通常选择服务器应用程序,因为它可以使用户创建的组件运行在一个单独的程序中。库应用程序在创建者的进程中运行,这意味着一个错误的组件会导致整个应用程序的失败。另外,库应用程序不支持负载平衡、远程访问和队列组件。但是库应用程序的运行速度快,因为它要跨越的进程边界很少。

我们为应用程序键入一个名字:TestMyCom+。

5.单击”下一步”,出现下图。这个对话框允许选择运行组件的用户身份。通常选择”交互式用户”,因为它使用登录进服务器的用户的身份来测试。”此用户”允许组件由一个具体的人来运行。
回复
online 2003-12-22
提供一些资料
win2000使用了MMC插件来管理COM+。
在服务器的”开始”——〉程序——〉管理工具——〉组件服务。

其中组件服务是管理所创建的各种COM+应用程序。事件查看器可以对所有的COM+事件进行跟踪。本地计算机上的服务允许使用安装在目标机器上的各种系统服务。组件服务可以同时对多台计算机进行查看。
服务器执行的默认应用程序通常比工作站多。包含了附加的对internet information server的支持。
注意:在老的资料中将COM+应用程序称为”包”。一般是指windows NT中的MTS。


COM+应用程序由组件和角色组成的。
组件包含一个或多个接口。每个接口包含一个或多个方法。见上图所示。

2.2创建COM+应用程序,安装组件

过去,使用Regsvr32来完成注册或者在安装程序中提供注册功能。在COM+中,windows 2000会使用MMC插件来完成注册功能。

下面我们一步一步的为我们的组件创建一个新的应用程序。
1. 先把租件放到服务器中一个目录中。假设D:\MyCom+\WebDbAccess.dll
2. 点击”COM+应用程序”,从工具栏上选择操作->新建->应用程序。会出现一个向导界面。
3. 单击”NEXT”,会看到下面的界面:

回复
liberte 2003-12-22
help you up
回复
发动态
发帖子
VB基础类
创建于2007-09-28

7453

社区成员

VB 基础类
申请成为版主
社区公告
暂无公告