zoukankan      html  css  js  c++  java
  • 系统服务的最简单实现

          记得去年搞系统服务的时候,看了不少园友门的文章:怎么新建系统服务,怎么通过vs2008添加安装类……总之,搞好久,才把这个搞定。

          下面我告诉你,只需三个文件,即可完成一个系统服务。

          1.新建一个类,命名为TestService,并继承于

    System.ServiceProcess.ServiceBase。重启其中的OnStart方法和OnStop方法

          

     1 public class TestService:ServiceBase
     2     {
     3         protected override void OnStart(string[] args)
     4         {
     5             NLogHelper.Trace("OnStart");
     6         }
     7 
     8         protected override void OnStop()
     9         {
    10             NLogHelper.Trace("OnStop");
    11         }
    12     }

         2.新建一个类,命名为TestServiceInstaller,并继承于System.Configuration.Install

         

     1     [RunInstaller(true)]
     2     public class TestServiceInstaller : Installer
     3     {
     4         /// <summary>
     5         /// 安装一个进程
     6         /// </summary>
     7         private ServiceInstaller serviceInstaller;
     8         /// <summary>
     9         /// 安装一个服务
    10         /// </summary>
    11         private ServiceProcessInstaller processInstaller;
    12 
    13         /// <summary>
    14         /// Initializes a new instance of the <see cref="TestServiceInstaller"/> class.
    15         /// </summary>
    16         public TestServiceInstaller()
    17         {
    18             //致命用户类型
    19             processInstaller = new ServiceProcessInstaller {Account = ServiceAccount.LocalSystem};
    20             serviceInstaller = new ServiceInstaller
    21                                    {
    22                                        StartType = ServiceStartMode.Manual,//服务的启动类型:手动
    23                                        ServiceName = "TestService",//服务的名称
    24                                        Description = "这是TestService的描述",
    25                                        DisplayName = "这里是显示在系统服务中的名称"
    26                                    };
    27 
    28             Installers.Add(serviceInstaller);
    29             Installers.Add(processInstaller);
    30         }
    31     }

          3.用一个控制台程序生成exe文件

         

     1     static class Program
     2     {
     3         /// <summary>
     4         /// 应用程序的主入口点。
     5         /// </summary>
     6         static void Main()
     7         {
     8             var servicesToRun = new ServiceBase[]
     9                                               {
    10                                                   new TestService()
    11                                               };
    12             ServiceBase.Run(servicesToRun);
    13         }
    14     }

        接下来,编译,生成一个test.exe文件。

        然后通过vs的命令提示行,使用命令 installutil test.exe

    嘿嘿,看一下,系统服务中已经多了一个名为:“这里是显示在系统服务中的名称”的服务了

    明天再介绍些系统服务开发的其他知识

  • 相关阅读:
    c语言简易文法
    词法分析实验报告
    词法分析程序
    scrapy-splash的安装和使用
    scrapy关于将数据保存进mysql数据库及问题解决(增删查改)
    关于scrapy的一些练习
    安装python框架scrapy
    ssm中遇到的一些问题及解决办法
    安装PIL和pytesseract,用Pycharm自动化测试,验证码登陆
    selenium+pycham自动化登陆qq邮箱发送邮件
  • 原文地址:https://www.cnblogs.com/marvin/p/simple_service.html
Copyright © 2011-2022 走看看