博客园  :: 首页  :: 联系 :: 管理

创建 Windows 服务

Posted on 2006-02-08 10:21  sunrack  阅读(350)  评论(0编辑  收藏  举报

当创建服务时,可以使用称作 Windows 服务的 Visual Studio .NET 项目模板。此模板引用适当的类和命名空间、设置从服务基类的继承并重写您可能要重写的几种方法,从而自动为您完成大部分工作。

注意   Windows 服务模板在 Visual Basic 和 Visual C# .NET 的标准版中不可用。有关更多信息,请参见 Visual Basic 标准版功能Visual C# 标准版的功能

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

  • 设置 ServiceName 属性。
  • 为服务应用程序创建必需的安装程序。
  • 重写 OnStartOnStop 方法并为其指定代码以自定义服务的行为方式。

在将安装程序添加到应用程序之后,下一步是创建安装项目,该项目将安装已编译的项目文件并运行安装服务所需的安装程序。若要创建完整的安装项目,您必须将服务项目的输出添加到该安装项目,然后添加自定义操作以安装您的服务。有关安装项目的更多信息,请参见安装项目。有关自定义操作的更多信息,请参见演练:创建自定义操作

创建 Windows 服务应用程序

  1. 创建一个 Windows 服务项目。
    注意   有关编写服务(不使用模板)的说明,请参见以编程方式编写服务
  2. 在“属性”窗口中,设置服务的 ServiceName 属性。
    注意   ServiceName 属性的值必须始终与安装程序类中记录的名称匹配。如果更改此属性,还必须更新安装程序类中的 ServiceName 属性。
  3. 设置下列所有属性以确定服务的工作机制。
    属性 设置
    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. 安装服务。有关更多信息,请参见安装和卸载服务