在 Windows 服务中托管 WCF 服务
1. Windows 服务概述
Windows 服务是一种应用程序,其生命周期由服务控制管理器(SCM)控制。SCM 在 Windows 机器启动时自动启动,允许对机器上的 Windows 服务进行本地或远程控制。可以通过控制面板中的“管理工具”➝“服务”访问 SCM。通过 SCM,可以启动、停止、暂停和继续服务,并编辑服务的配置设置。
1.1 服务启动控制
Windows 服务通常作为自动化部署脚本的一部分进行安装,而不是直接通过 SCM 界面进行安装。服务的配置设置也可以通过脚本编写,但也可以通过 SCM 提供的属性对话框进行编辑。服务启动类型是一个重要的设置,它决定了服务是否启用,以及机器启动时服务是否应自动启动。可选的启动类型如下:
| 启动类型 | 描述 |
| ---- | ---- |
| 禁用 | 服务被禁用 |
| 手动 | 必须使用 SCM 手动启动服务 |
| 自动 | 机器启动时服务应启动 |
| 自动(延迟启动) | 其他非延迟(优先级较高)的服务启动后,该服务才启动 |
1.2 运行时身份
可以从服务属性对话框的“登录”选项卡控制服务运行的身份。这个账户身份很重要,因为它决定了服务在运行时可以访问的 Windows 资源,以及服务调用其他进程时将传递的凭据。身份选项如下:
| 身份 | 描述 |
| ---- | ---- |
| 本地服务 | 这是一种特殊身份,用于向外调用时提供匿名凭据 |
| 本地系统 | 代表一个高风险、具有非常高特权的账户 |