zoukankan      html  css  js  c++  java
  • Windows Service 之 详解(一)

    一、Windows 服务简介

      Windows 服务是可以在系统启动时自动打开的(不需要任何人登录计算机)的程序。

      1、适合创建Windows 服务的场景:

      [1] 在没有用户交互操作的情况下运行程序;

      [2] 在权限比交互式用户更大的用户下运行程序;

      2、Windows 服务的示例:

      [1] WCF宿主(假定由于某些原因不能使用IIS);

      [2] 缓存网络服务器中数据的程序;

      [3]在后台重新组织本地磁盘数据的程序。

      3、Windows 服务的管理:

      windows系统下:控制面板 → 系统和安全 → 管理工具 → 服务;或者 在“ 搜索 Web 和 Windows ”中直接搜索“服务”。

    二、Windows 服务的体系结构

      操作 Windows 服务需要三种程序:服务程序;服务控制程序;服务配置程序。

      1、服务程序:用于提供需要的实际功能;

      服务程序需要三个部分:主函数、service-main 函数、处理程序。

      服务控制管理器(Service Control Manager,SCM),对于服务有非常重要的作用,它可以把启动服务或停止服务的请求发送给服务。SCM是操作系统的一个组成部分,它的作用是与服务进行通信。

      如果将服务设置为自动启动,则在系统启动时,将启动该服务的每个进程,进而调用该进程的主函数。该服务负责为它的每项服务都注册一个 service-main 函数。主函数是服务程序的入口点,service-main 函数的入口点必须用SCM注册。 

      [1] 主函数:程序的一般入口点,即 Main() 方法,它可以注册多个 service-main 函数;

      [2] service-main 函数包含服务的实际功能。服务必须为所提供的每项服务注册一个 service-main 函数。服务程序可以在一个程序中提供许多服务。SCM 为每一个应该启动的服务调用 service-main 函数。service-main 函数的一个重要任务是用SCM注册一个处理程序。

      [3] 处理程序:必须响应来自 SCM 的事件(停止、暂停 或 重新开始)。

      2、服务控制程序:用于把控制请求发送给服务,如开始、停止、暂停 和 继续。

      服务控制程序独立于 SCM 和服务本身。服务控制程序可以控制服务,一是,可以把控制代码发送给服务,处理程序应该响应发送的事件;二是,可以询问服务的实际状态,并实现一个响应自定义控制代码的自定义处理程序。

      3、服务配置程序:用于安装服务,这意味着不但要把服务复制到文件系统中,还要把服务的信息写到注册表中,这个注册信息由服务控制管理器(SCM)用于开始和启动服务。

      服务必须在注册表中配置。注册表包含了服务的启动类型(自动、手动 或禁用)。必须配置服务程序的用户、服务的依赖关系。所有的配置工作在服务配置程序中进行。服务配置程序也可以在以后用于改变服务配置参数。

      4、Windows 服务的类

      在 .NET Framework 中,可以在 System.ServiceProcess 名称空间中找到实现服务的3部分的服务类:

      [1] 必须从 ServiceBase 类继承才可以实现服务。ServiceBase 类用于注册服务、响应开始和停止请求;

      [2] ServiceController 类用于实现服务控制程序。使用这个类,可以把请求发送给服务;

      [3] ServiceProcessInstaller 类和 ServiceInstaller 类用于安装和配置服务程序。

      

  • 相关阅读:
    PHP简单模拟登录功能实例分享
    一个form表单,多个提交按钮
    jquery validation验证身份证号、护照、电话号码、email
    MockMvc和Mockito之酷炫使用
    Java8 Stream API
    第一章 Lambda表达式
    Java中线程顺序执行
    单元测试之获取Spring下所有Bean
    iBatis之type
    json解析之jackson ObjectMapper
  • 原文地址:https://www.cnblogs.com/xinaixia/p/5031060.html
Copyright © 2011-2022 走看看