如何:创建 Windows 服务

注意

本文不适用于 .NET 中的托管服务。 有关使用 Microsoft.Extensions.Hosting.BackgroundService 的 Windows 服务上的最新内容和辅助角色服务模板,请参阅:

创建服务时,可使用名为“Windows 服务” 的 Visual Studio 项目模板。 通过引用适当的类和命名空间、为服务设置来自基类的继承和替代你可能想要替代的几个方法,此模板自动为你完成了许多工作。

警告

Visual Studio 的速成版中未提供 Windows 服务项目模板。

要创建功能性服务,你至少必须:

  • 设置 ServiceName 属性。

  • 为你的服务应用程序创建必要的安装程序。

  • 替代并指定 OnStartOnStop 方法的代码,以自定义你的服务的行为方式。

要创建 Windows 服务应用程序

  1. 创建“Windows 服务” 项目。

    注意

    有关不使用模板编写服务的说明,请参阅如何:以编程方式编写服务

  2. 在“属性”窗口中,为服务设置 ServiceName 属性。

    设置 ServiceName 属性。

    注意

    ServiceName 属性的值必须始终与记录在安装程序类中的名称相匹配。 如果更改此属性,你还必须更新安装程序类的 ServiceName 属性。

  3. 设置下列任何一个属性,确定你的服务的运行方式。

    Property 设置
    CanStop True 表示服务将接受请求停止运行;false 将阻止服务被停止。
    CanShutdown True 表示当服务所在的计算机关机时服务需要接受通知,启用它来调用 OnShutdown 过程。
    CanPauseAndContinue True 表示服务将接受请求暂停或恢复运行;false 将阻止服务被暂停或恢复。
    CanHandlePowerEvent True 表示服务可处理计算机电源状态更改的通知;false 将阻止向服务通知这些更改。
    AutoLog True 将在你的服务执行操作时向应用程序事件日志写入信息条目;false 将禁用该功能。 有关详细信息,请参阅如何:记录关于服务的信息。 注意:默认情况下,将 AutoLog 设置为 true

    注意

    CanStopCanPauseAndContinue 设置为 false 时,“服务控制管理器”将禁用相应的菜单选项来停止、暂停或继续该服务。

  4. 访问代码编辑器,并填写你想要对 OnStartOnStop 过程的处理。

  5. 替代你想要定义功能的任何其他方法。

  6. 添加服务应用程序所必需的安装程序。 有关详细信息,请参阅如何:将安装程序添加到服务应用程序

  7. 通过从“生成” 菜单选择“生成解决方案” 来生成项目。

    注意

    不要通过按 F5 来运行你的项目 — 你无法通过这种方式运行服务项目。

  8. 安装服务。 有关详细信息,请参阅如何:安装和卸载服务

请参阅