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

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

  • 相关阅读:
    四种PHP异步执行的常用方式
    PHP 多进程和多线程的优缺点
    试着用workerman开发一个在线聊天应用
    Python代码报错看不懂?记住这20个报错提示单词轻松解决bug
    PHP面试题大全(值得收藏)
    常见排序算法(三)
    常见排序算法(二)
    常见排序算法(一)
    NumPy 学习笔记(四)
    JavaScript 事件
  • 原文地址:https://www.cnblogs.com/niguang/p/9182032.html
Copyright © 2011-2022 走看看