分布式应用如果用 Com+ 来开发的话,一个好处就是,你不用修改任何代码,只需要修改Com+的部署,既可以实现分布式。
下面是就是部署分布式Com+需要注意的一些东西和步骤:
部署要求:有A、B、C 三台机子。A机子是实际 Com+ 应用运行的机子。B、C机子调用A机子的Com+应用。
首先:在A机子部署Com+应用。如果这个应用是基于.net 开发的,只需要简单的执行下面两步:(TopicManage.dll 为假设要部署的Com+应用)
gacutil -i TopicManage.dll? (部署到GAC,有些简单的Com+不需要部署到GAC中,后面一个Blog会具体谈到这个问题)
RegSvcs TopicManage.dll
在确保本地部署Com+成功后。
要进入 Component Services ,去修改已经部署的 Com+ 应用的默认设置。
在 Com+ 应用的属性中,首先需要在它的 Activation 属性中修改 Activation
type 为 Server application
(Run application as NT Service 的选项无所谓选不选,具体自己决定)
如下图:
?
如果只修改这一项,并保存,这时候启动这个 Com+? Application 会报下面错误:
---------------------------
Catalog Error
---------------------------
You do not have permission to perform the requested action.? If
security is enabled on the System Application of the target computer?
make sure you are included in the appropriate roles.
---------------------------
OK??
---------------------------
你需要修改这个 Com+ Application 的安全设置,
在 Security 属性的 Authorization 中,确认 Enforce access checks for this application 这个选项没有被打勾。然后保存设置。启动这个Com+ 应用。
这样A 机器的设置就完成了。
如下图:
?
下面我们需要到 B、C 机子安装 对 A 机器Com+ 的引用。 Com+ 应用可以方便的导出为一个安装文件。然后在其他机子上执行这个安装文件,实现其他机子的部署。
选择 A 机器的Com+? 应用,执行导出命令,在导出设置的时候,注意选择
Application proxy - Install on other machines to enable access to this machine 这个选项,如下图。
?
完成导出后,你可以获得一个 msi 文件,在 B、C 机子上执行这个msi文件,就可以安装完成。
最后一个问题,就是访问权限的问题,把B、C机子上调用Com+ 应用程序的帐号,对A机的Com+ 调用有权限既可。
剩下的就是在 B、C 机子上起一个测试应用,看应用是不是正常而已。
打印 | 张贴于 2004-07-21 16:10:00 | Tag:.net 编程心得 ServicedComponent(企业服务)
留言反馈
能具体介绍一下怎么实现吗
set tmpObj
set tmpObj=createobject("a.clsa","\\servername")
tmpObj.getString="BB"
说明:"a.clsa"为自己编写的dll
servername为服务器名称
在tmpObj.getString="BB"程序出现不允许访问出错信息
请各位大虾能帮帮我如何解决
请问部署Com+的时候,B也需要注册一下吗?
不知道为什么,GG你写的文章,我在另一台机器上调用时则出现未授权的提示错误;而且我不太清楚客户端安装*.msi以后如何引用这个代理?直接浏览到**/program files/complu****/$%@#$%#/*.dll就可以了??还是怎么样处理??
初学Com+,还请你不要见笑。。。。。
如果有空,还请GG给我发一篇比较详细的关于Com+部署的步骤到((liuzhijun@hit.edu.cn)),不甚感激。
容易出错
ASP.net 的默认权限是很低的,你需要修改
微软那个网上证券的例子好象是用的.application center cluster.还有没有其它的方式?
一般部署分布式的com+应用都是怎么部署呢?多谢!
对象池, 事务,队列 等等,要用到这些,就有用。
如果客户端是 非 windows 2003 的话, COM+ 导出要选择1.0 格式.