LocalService
将对象安装为服务应用程序。
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID
{AppID_GUID}
LocalService = name
除了作为本地服务器可执行文件 (EXE) 运行之外,COM 对象还可以选择将自身打包为在被本地或远程客户端激活时作为服务应用程序运行。 服务支持许多有用的 UI 集成的管理功能,包括本地和远程启动、停止、暂停和重启,以及建立可在特定用户帐户和窗口站下运行的服务器的功能。
通过确定 LocalService 值并执行标准服务安装,安装编写为服务的对象供 COM 使用。 LocalService 值必须设置为在 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services 中配置的服务名称,作为默认的 REG_SZ 值。
设置 LocalService 后,分配给 ServiceParameters 的任何字符串都会在服务启动时作为命令行参数传递给服务。
在许多情况下,本地和远程服务管理 API 和用户界面的功能可能对对象提供的服务有用,此时服务配置是首选。 例如,如果对象生存期较长或随时支持启动、停止、重置或暂停等概念,那么利用服务体系结构的现有管理框架应该是一个显而易见的选择。
服务可以动态配置,并且可以配置为在计算机启动时自动运行,或者配置为在客户端应用程序请求时启动。
如果将类实现为服务,则应该注意以下几点:
- 对于本地和远程激活请求,此值在使用时优先于 LocalServer32 键。如果 LocalService 存在并且是指有效服务,则 LocalServer32 键会被忽略。
- 目前,在计算机上的给定时间,只能运行服务应用程序的单个实例。 因此,COM 服务必须在启动时使用 REGCLS_MULTIPLEUSE 注册其类对象,以支持多个客户端。
- 为了正确启动和初始化,配置为在计算机启动时自动运行的 COM 服务必须在其依赖服务列表中包括 RPCSS。