快速业务通道

实现应用程序中的并行组件共享(二)

作者 佚名技术 来源 程序设计 浏览 发布时间 2012-06-29
服务器路径。

选择要隔离的组件

DLL/COM 重定向允许隔离现有组件,其中安装在计算机中的应用程序需要相同组件的不同版本。不需要对该组件进行任何代码更改,因为一旦激活,DLL/COM 重定向将更改 Windows 绑定行为。

但是到目前为止,并行执行组件的不同版本通常已不是设计所考虑的问题。当组件可以很容易地并行安装(安装在一个共享的位置并且与一个或多个应用程序隔离)时,它们可能不并行运行。假定任何时刻在计算机中只有一个组件版本,出现这种情况是因为一些组件使用全局状态(如存储在注册表中的设置)。另外,当该组件定位它所需要的其他资源时,该组件可能会假设它所安装的特定目录。

由于这个原因,必须测试应用程序,该应用程序使用了安装在自己身上和其他应用程序环境中的隔离组件,该组件是隔离的。Microsoft 的经验表明在大多数方案中,共享的组件通常是可以并行运行的,但在某些情况下,可能需要关闭一个应用程序,然后才能运行下一个应用程序。

选择要隔离的组件时应遵照下列指南:

不要尝试隔离受“系统文件保护”(随 Windows 2000 提供)所保护的文件,包括大部分 .sys、.dll、.exe 以及 .ocx 文件。

必须测试所有应用程序以确保并行的有效性,尤其在可能出现共享的区域中,因为没有任何由当前操作系统强制的并行。

当心失去对组件进行快速修正的能力,因为它们现在在擅自定位的应用程序目录中。作为管理员,您需要知道需要修正组件的所有位置。

方案 I:将 ActiveX Controls 专门用于应用程序

在该方案中,管理员无法开发新的应用程序,因为新的应用程序使用在 Visual Basic 中创作的 ActiveX 控件的版本。该版本不同于当前开发的应用程序所需要的版本。

这时,对于 ActiveX 控件的错误修正和其他修改引入了语义的差别。如,应用程序使用了一个有问题的控件版本,该控件版本没有经过测试。管理员必须有能力运行不同版本的 ActiveX 控件,这些不同版本的 ActiveX 控件用于不同的应用程序,避免修正并重新测试可能受 ActiveX 控件更改影响的每个应用程序。

注意  在 Visual Basic 中,当前没有可供开发人员编写内在并行的 ActiveX 控件的便利途径。这是因为用 Visual Basic 创作的 ActiveX 控件在注册时将把 OCX 文件的全限定路径写入注册表中。

管理员能够强制新应用程序使用正确版本的 ActiveX 控件,并且通过将新应用程序的设置修改为下列值,以确认现有应用程序的配置没有更改:

在应用程序的 .exe 文件所在的目录中安装 ActiveX 控件的新版本。

在应用程序的 .exe 文件所在的目录中,安装一个 .local 文件,以指定每当运行该应用程序时都应从应用程序的 .exe 文件所在目录中装入 ActiveX 控件。

方案 II:将 Win32 DLL 专门用于一个应用程序

在该方案中,管理员得知在开发了新的应用程序之后,一个现有的应用程序停止工作。管理员能够诊断出问题是由于对共享组件进行修改引起的,这样做会导致共享组件的新版本不支持对先前版本的向后兼容。

管理员能够通过执行下列步骤修正应用程序:

将共享 DLL 的先前版本安装到现有应用程序的 .exe 文件所在的目录中。

在现有应用程序的 .exe 文件的所在目录中创建一个 .local 文件。该 .local 文件指定当应用程序运行时,在应用程序的 .exe 文件所在目录中找到的 DLL 应从这里装入。

安装隔离的 COM Server 的注意事项

DLL/COM 重定向是通过在新的位置安装 DLL 或 OCX 文件(专用于应用程序)来实现的,但是将不隔离与 COM Server 关联的其他系统状态,这对于隔离 COM Server 具有一些特定含义。

安装隔离的 COM Server 时,应当小心,以确保如果在计算机中已安装了组件的任何版本(例如通过其他应用程序),InprocServer 文件的位置不被隔离组件的

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号