Difference between revisions of "ServiceMode"

From ESS-WIKI
Jump to: navigation, search
(Created page with "C# code Service Mode class ServiceProgram : ServiceBase<br/>    {         public ServiceProgram()<br/>        {<br/> ...")
 
 
(13 intermediate revisions by 2 users not shown)
Line 1: Line 1:
C# code Service Mode
+
== C# code Service Mode ==
  
class ServiceProgram : ServiceBase<br/>&nbsp; &nbsp; {
+
'''<span style="font-size:medium;">The main entry point for the application.</span>'''
  
&nbsp; &nbsp; &nbsp; &nbsp; public ServiceProgram()<br/>&nbsp; &nbsp; &nbsp; &nbsp; {<br/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; InitializeComponent();<br/>&nbsp; &nbsp; &nbsp; &nbsp; }
+
<span style="font-size:small;">ServiceBase[] ServicesToRun;<br/>ServicesToRun = new ServiceBase[]<br/>{<br/>&nbsp; &nbsp; &nbsp; new ServiceProgram()<br/>};<br/>ServiceBase.Run(ServicesToRun);</span>
  
&nbsp; &nbsp; &nbsp; &nbsp; //private BackgroundWorker client_worker = null;<br/>&nbsp; &nbsp; &nbsp; &nbsp; protected override void OnStart (string[] args)<br/>&nbsp; &nbsp; &nbsp; &nbsp; {<br/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Program.Client_main();<br/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Program.WriteLog("Start");
+
'''<span style="font-size:medium;">Need define service onstart & onstop action</span>'''
  
&nbsp; &nbsp; &nbsp; &nbsp; }
+
class ServiceProgram&nbsp;: ServiceBase<br/>&nbsp; &nbsp; {
  
&nbsp; &nbsp; &nbsp; &nbsp; void client_DoWork(object sender, DoWorkEventArgs e)<br/>&nbsp; &nbsp; &nbsp; &nbsp; {<br/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BackgroundWorker worker = sender as BackgroundWorker;<br/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; try<br/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Program.Client_main();<br/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; catch (Exception err )<br/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Program.WriteLog("[error] " + err.Message + err.StackTrace);<br/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }
+
&nbsp; &nbsp; &nbsp; &nbsp; public ServiceProgram()<br/>&nbsp; &nbsp; &nbsp; &nbsp; {<br/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; InitializeComponent();<br/>&nbsp; &nbsp; &nbsp; &nbsp; }<br/>&nbsp; &nbsp; &nbsp; &nbsp; protected override void OnStart (string[] args)<br/>&nbsp; &nbsp; &nbsp; &nbsp; {<br/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//&nbsp; Do something after service started.&nbsp;
 
 
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (worker.CancellationPending)<br/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return;
 
  
 
&nbsp; &nbsp; &nbsp; &nbsp; }
 
&nbsp; &nbsp; &nbsp; &nbsp; }
  
&nbsp; &nbsp; &nbsp; &nbsp; public void Start(string[] args)<br/>&nbsp; &nbsp; &nbsp; &nbsp; {<br/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.OnStart(args);<br/>&nbsp; &nbsp; &nbsp; &nbsp; }
+
&nbsp; &nbsp; &nbsp; &nbsp; protected override void OnStop()<br/>&nbsp; &nbsp; &nbsp; &nbsp; {
  
&nbsp; &nbsp; &nbsp; &nbsp; protected override void OnStop()<br/>&nbsp; &nbsp; &nbsp; &nbsp; {<br/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Program.Disconnect();<br/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Program.WriteLog("Stop");
+
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//&nbsp; Do something before&nbsp;service stopped.&nbsp;
  
 
&nbsp; &nbsp; &nbsp; &nbsp; }
 
&nbsp; &nbsp; &nbsp; &nbsp; }
 
&nbsp; &nbsp; &nbsp; &nbsp; public void Stop()<br/>&nbsp; &nbsp; &nbsp; &nbsp; {<br/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.OnStop();<br/>&nbsp; &nbsp; &nbsp; &nbsp; }
 
  
 
&nbsp; &nbsp; &nbsp; &nbsp; private void InitializeComponent()<br/>&nbsp; &nbsp; &nbsp; &nbsp; {<br/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.ServiceName = "OpcuaClient";
 
&nbsp; &nbsp; &nbsp; &nbsp; private void InitializeComponent()<br/>&nbsp; &nbsp; &nbsp; &nbsp; {<br/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.ServiceName = "OpcuaClient";
  
 
&nbsp; &nbsp; &nbsp; &nbsp; }<br/>&nbsp; &nbsp; }
 
&nbsp; &nbsp; &nbsp; &nbsp; }<br/>&nbsp; &nbsp; }
 +
 +
== '''C code service mode&nbsp;''' ==
 +
 +
'''Please refer to CAgent&nbsp;&nbsp;Platform/Windows/[http://advgitlab.eastasia.cloudapp.azure.com/EI-PaaS-RMM/RMM-EI-Agent/blob/master/Platform/Windows/service.c service.c]&nbsp;'''

Latest revision as of 04:34, 23 October 2018

C# code Service Mode

The main entry point for the application.

ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
      new ServiceProgram()
};
ServiceBase.Run(ServicesToRun);

Need define service onstart & onstop action

class ServiceProgram : ServiceBase
    {

        public ServiceProgram()
        {
            InitializeComponent();
        }
        protected override void OnStart (string[] args)
        {
             //  Do something after service started. 

        }

        protected override void OnStop()
        {

           //  Do something before service stopped. 

        }

        private void InitializeComponent()
        {
            this.ServiceName = "OpcuaClient";

        }
    }

C code service mode 

Please refer to CAgent  Platform/Windows/service.c