zoukankan      html  css  js  c++  java
  • Windows服务

    因工作中遇到window服务的业务特了解了下window服务开发,安装,卸载,调试等,特记录一下作为以后回顾使用

    工作业务场景:

    项目中数据调用通过thrift,在调用前需要开启多个服务,这些服务有exe,bat等,每次调用都要手动开启很多服务,比较繁琐;

    为了便于接口调用调试制作一个进程封装(将所有待启用的服务封装起来,通过进程统一启用,并对进程进行守护),另外可能存在服务器重启宕机的情况,

    所以要将应用做成window服务

    1, 创建Windows服务

     

    2.创建好Windows服务后在左侧设计试图中单击右键,点击“添加安装程序”,选择serviceInstaller1右键属性,对其属性做如下设置:

     

    3.选中serviceProcessInstall1右键属性,将Account属性值设置成LocalSystem

    4.在ProjectInstaller中重写Commit方法

      public override void Commit(IDictionary savedState)

            {

                base.Commit(savedState);

                ServiceController sc = new ServiceController("NUCBoxService");

                if (sc.Status.Equals(ServiceControllerStatus.Stopped))

                {

                    sc.Start();

                }

            }

    5.Program中有两个方法 OnStart  OnStop是服务启动和停止要执行的方法

     在对应方法中编写对应的逻辑处理

             protected override void OnStart(string[] args)

            {

                dispatcher.Init();

                dispatcher.StartAll();

                logger.Info("Start switch service");

            }

     

            protected override void OnStop()

            {

                dispatcher.StopAll();

                dispatcher.Dispose();

                logger.Info("Stop switch service");

            }

    6.至此服务创建成功,服务的安装,卸载,调试 见如下技术贴:

    https://blog.csdn.net/sqqyq/article/details/50475437

    https://www.cnblogs.com/knowledgesea/p/3616127.html

    感谢上述两篇技术贴作者分享

  • 相关阅读:
    PAT 1018. 锤子剪刀布
    PAT 1017. A除以B
    PAT 1016. 部分A+B
    PAT 1015. 德才论
    PAT 1014. 福尔摩斯的约会
    PAT 1013. 数素数
    PAT 1012. 数字分类
    PAT 1011. A+B和C
    292. Nim Game
    412. Fizz Buzz
  • 原文地址:https://www.cnblogs.com/niguang/p/9182032.html
Copyright © 2011-2022 走看看