本文转自:
http://cio.it168.com/e/2007-04-20/200704200927843.shtml
【IT168 专稿】利用Office 产品内置的功能和对某些特性的自定义,可以满足一些企业的特殊应用,开发人员用自己的智慧为微软的Office赋予了新的价值。但是,由于这种使用方式并不为微软所推荐,因此在通过服务器端代码(例如,Active Server Pages (ASP)、DCOM 或 NT Service)进行Office“自动化”过程中往往产生某些不可预知的问题。
本文针对这些问题,提供可以提高Office应用性能的“自动化”备选方案,并提出进行服务器端“自动化”的配置方法。
配置Office服务器的五大常见问题
在使用服务器端Office 自动化解决方案的时候应当了解到,Office的表现会因为环境的不同而表现出主要的五大问题。
① 用户身份
Office 应用程序在由“自动化”启动运行时会假定存在一个用户身份。它们根据用户注册表配置单元中的设置为启动应用程序的用户初始化工具栏、菜单、选项、打印机和一些加载项。许多服务会在没有用户配置文件的帐户下运行,因此,Office 可能无法在启动时进行正确的初始化,进而返回一个有关“CreateObject”或“CoCreateInstance”的错误。即使能够在没有用户配置文件的情况下启动Office 应用程序,其他功能也可能无法正常工作。
② 与桌面的交互性
Office 应用程序在某个交互式桌面下运行时,可能需要让用户看到它们以便某些“自动化”功能正常运行。如果需要一个未指定的参数才能完成某项功能,Office 会用一个模式对话框提示用户,询问用户要进行什么操作。非交互式桌面上的模式对话框是无法取消的,这将导致该线程无限期地停止响应。
③ 重入和可伸缩性
服务器端组件需要具有较高可重入性的多线程 COM 组件,这些组件在有多个客户端时消耗资源最少而吞吐量却比较高。而Office 应用程序在几乎所有方面都恰恰与其相反,它们是非重入的“自动化”服务器,在为客户端提供多种多样功能的同时也占用了较多的系统资源。作为服务器端解决方案,他们可能会因此而受到实际并发运行数量的限制,并且在多客户端环境中,还可能导致资源争用。
④ 复原性和稳定性
Office 2000、Office XP 和 Office 2003 使用 Microsoft Windows 安装程序 (MSI) 技术,以使最终用户在进行安装和自行修复时更加容易。MSI 推出了“首次使用时安装”的概念,允许在运行时动态安装或配置功能。在服务器端环境中,这会既降低性能,又增加出现要求用户同意安装或提供相应安装盘的对话框的可能性。此外,在服务器端运行时,由于微软并没有为这样的使用而进行设计和测试,因此Office 的稳定性通常无法得到保障。在网络服务器上使用 Office 作为服务组件可能会降低这台计算机的稳定性,进而降低网络的整体稳定性。
⑤ 服务器端安全性
由于Office 应用程序不是为在服务器端使用而准备的,因此系统不可能考虑到分布式组件所面临的安全性问题。Office 不对传入的请求进行身份验证,也不会抵制来自宏代码的损害。