通过


如何:创建 Windows 服务

注释

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

创建服务时,可以使用名为 Windows 服务的 Visual Studio 项目模板。 此模板通过引用适当的类和命名空间、设置服务基础类的继承,以及重写多个你可能需要重写的方法,自动为您完成大部分工作。

警告

Windows Services 项目模板在 Visual Studio 的 Express 版本中不可用。

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

  • 设置 ServiceName 属性。

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

  • OnStartOnStop 方法重写并指定代码,以定制服务的行为方式。

创建 Windows 服务应用程序

  1. 创建 Windows 服务 项目。

    注释

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

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

    设置 ServiceName 属性。

    注释

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

  3. 设置以下任一属性以确定服务将如何运行。

    财产 设置
    CanStop True 指示服务将接受停止运行的请求;false 防止服务被停止。
    CanShutdown 如果指示服务希望在其运行的计算机关机时接收通知,则允许它调用 True 过程,通过 OnShutdown 实现。
    CanPauseAndContinue True 指示服务将接受暂停或恢复运行的请求; false 以防止服务暂停和恢复。
    CanHandlePowerEvent True 指示服务可以处理计算机电源状态更改的通知; false 以防止服务收到这些更改的通知。
    AutoLog True 若要在服务执行操作时将信息性条目写入应用程序事件日志, false 禁用此功能。 有关详细信息,请参阅 “如何:记录有关服务的信息”。 注意: 默认情况下, AutoLog 设置为 true.

    注释

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

  4. 访问代码编辑器并填写您所需的 OnStart 处理和 OnStop 方法。

  5. 重写要为其定义功能的任何其他方法。

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

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

    注释

    不要按 F5 运行项目 — 你无法以这种方式运行服务项目。

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

另见