微软专家:配置为“库应用程序”的COM+应用程序

horris 2001-11-07 01:03:34
在COM+的组件服务配置工具里,一般在“激活”选项夹里把COM+应用程序配置为“服务器应用程序”,组件将在专用的服务器进程中被激活,我理解就是在COM+ Runtime,也就是dllhost.exe进程中运行。而另一个选项,“库应用程序”我不太清楚。它应该是在客户端的进程中运行吧,或者指定其他特定的EXE作为surrogate?那么在这个用户自定义的进程中,COM+应用程序的组件是否还能获得上下文环境,或者说是否还能获得IObjectContext,COM+组件的IObjectControl、IObjectConstruct是否还起作用?如果上述接口还起作用,那么是谁在这里起着COM+ runtime所起的interception作用?是用户自定义的进程自已提供,还是隐式地启动dllhost.exe,通过与COM+ runtime的跨进程通讯获得COM+的服务?如果是用户自定义的进程自已提供,那么是否意味着对这个进程的EXE要作编程,自已实现COM+的context、JIT、transaction等?
例如,ASP中可以引用COM+ configured component,这时将隐式启动dllhost.exe,实际上configured component是在dllhost.exe的进程中吧?如果组件配置为“库应用程序”,ASP是否不启动dllhost.exe呢?
...全文
149 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
0aaron 2001-12-01
  • 打赏
  • 举报
回复
upup
acptvc 2001-11-09
  • 打赏
  • 举报
回复
感谢您使用微软产品。
dllhost.exe只是个系统提供的surrogate process,并不是com+ runtime,你也可以自己写个surrogate,参见ISurrogate接口; 在com+中,库应用程序是在直接调用方的进程中运行的,所以直接调用方和库应用程序必须在同一台机器上。COM+并不象MTS那样去改inprocServer32注册表项来装入自己的runtime。

微软亚洲技术中心 VC技术支持

本贴子仅供CSDN的用户作为参考信息使用。其内容不具备任何法律保障。您需要考虑到并承担使用此信息可能带来的风险。具体事项可参见使用条款 (http://www.csdn.net/microsoft/terms.shtm)。
horris 2001-11-08
  • 打赏
  • 举报
回复
我想我知道答案了,库应用程序的InprocServer32注册表项被设为mtxex.dll,而不是组件的DLL本身,这样mtxex.dll就实现了interception,我想在COM+中应该也有这么个DLL,它是COM+ runtime的一部分。

3,245

社区成员

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

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