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

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

原文地址:https://www.cnblogs.com/niguang/p/9182032.html