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

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

  • 相关阅读:
    Adaptive Cursor Sharing in Oracle Database 11g Release 1
    FORALL Support for NonConsecutive Indexes (Sparse Collections)
    设置会话TRACE的方法(一)
    Oracle 10g: UTL_MAIL
    Oracle :Parallel execution when table created.
    Server.MapPath
    Oracle10g :Nested Table Enhancements
    Asktom:Single Block IO Vs Multi Block IO
    Oracle10g新增DBMS_MONITOR包(一)
    设置会话TRACE的方法(二)
  • 原文地址:https://www.cnblogs.com/niguang/p/9182032.html
Copyright © 2011-2022 走看看