进程内服务器通过本地服务器的编辑功能提供对象处理程序的速度和大小优势。 那么,为什么你选择将 OLE 应用程序实现为本地服务器而不是进程内服务器? 有多种原因:

  • 安全。 只有本地服务器与客户端的地址空间隔离。 进程内服务器共享客户端的地址空间和进程上下文,因此在遇到故障或恶意编程时可能不太可靠。
  • 粒度。 本地服务器可以跨多个不同客户端托管其对象的多个实例,以多种客户端方式在对象之间共享服务器状态,如果作为进程内服务器实现,这仅仅是加载到每个客户端中的 DLL,就很难或不可能。
  • 兼容性。 如果选择实现进程内服务器,则放弃与 OLE 1 的兼容性,这不支持此类服务器。 对于许多开发人员来说,这不会是一个考虑因素,但如果是,那么这是一个关键问题。
  • 无法支持链接。 进程内服务器不能用作链接源。 由于 DLL 本身无法运行,因此无法创建要链接到的文件对象。

尽管存在这些缺点,但进程内服务器对于其速度和大小来说是一个不错的选择,如果它符合所有其他要求。

优势

In-Process 服务器