public MainService() { InitializeComponent(); try { configHandler = new AtonServiceConfigHandler(); sm = new ServiceManage(); } catch (Exception ex) { NativeHelper.FileTracerHelper.Trace(ex); } }
/// <summary> /// 加载服务信息 /// </summary> /// <param name="configHandler"></param> /// <returns></returns> protected bool LoadServiceInfo(AtonServiceConfigHandler configHandler) { foreach (var item in configHandler) { IAtonService service; if (TryCreateInstance<IAtonService>(item.Type, out service)) { container.TryAdd(item.Name, service); } else { container.Clear(); return false; } } return true; }
/// <summary> /// 加载服务信息 /// </summary> /// <param name="configHandler"></param> /// <returns></returns> protected bool LoadServiceInfo(AtonServiceConfigHandler configHandler) { foreach (var item in configHandler) { IAtonService service; if (TryCreateInstance <IAtonService>(item.Type, out service)) { container.TryAdd(item.Name, service); } else { container.Clear(); return(false); } } return(true); }
public void InitHost(AtonServiceConfigHandler handler,string execpath) { configHandler = handler; _exePath = execpath; }
/// <summary> /// The main entry point for the application. /// </summary> static void Main(string[] args) { string _exePath = Assembly.GetExecutingAssembly().Location; AtonServiceConfigHandler configHandler; try { configHandler = new AtonServiceConfigHandler(); } catch (Exception ex) { Console.Write(ex.Message); Console.Write(ex.StackTrace); return; } if (configHandler.ServiceSummary.ServiceName.Length == 0) { Console.WriteLine("Error:Unable get service name"); return; } if (args != null && args.Length > 0) { if (args[0].Equals("-i", StringComparison.OrdinalIgnoreCase)) { bool r = helper.InstallService(_exePath, configHandler.ServiceSummary.ServiceName, configHandler.ServiceSummary.ServiceName, configHandler.ServiceSummary.ServiceDesc, NativeInstaller.ServiceStartType.SERVICE_AUTO_START); Console.WriteLine("Service Name :" + configHandler.ServiceSummary.ServiceName); Console.WriteLine("Service Desc :" + configHandler.ServiceSummary.ServiceDesc); Console.WriteLine("Install Result :" + (r ? "Success" : "Fail")); return; } else if (args[0].Equals("-u", StringComparison.OrdinalIgnoreCase)) { bool r = helper.UnInstallService(configHandler.ServiceSummary.ServiceName); Console.WriteLine("Service Name :" + configHandler.ServiceSummary.ServiceName); Console.WriteLine("Service Desc :" + configHandler.ServiceSummary.ServiceDesc); Console.WriteLine("Uninstall :" + (r ? "Success" : "Fail")); return; } else if (args[0].Equals("-r", StringComparison.OrdinalIgnoreCase)) { Console.WriteLine("Service Name :" + configHandler.ServiceSummary.ServiceName); Console.WriteLine("Service Desc :" + configHandler.ServiceSummary.ServiceDesc); bool r = helper.StartService(configHandler.ServiceSummary.ServiceName); Console.WriteLine("Start :" + (r ? "Success" : "Fail")); } else if (args[0].Equals("-s", StringComparison.OrdinalIgnoreCase)) { bool r = helper.StopService(configHandler.ServiceSummary.ServiceName); Console.WriteLine("Service Name :" + configHandler.ServiceSummary.ServiceName); Console.WriteLine("Service Desc :" + configHandler.ServiceSummary.ServiceDesc); Console.WriteLine("Stop :" + (r ? "Success" : "Fail")); } else if (args[0].Equals("-l", StringComparison.OrdinalIgnoreCase)) { Console.WriteLine(string.Format("Host Service List: {0} \n", configHandler.Count)); foreach (var item in configHandler) { Console.WriteLine(string.Format("Service Name: {0} \nFullName:{1}", item.Name, item.Type.Split(',')[0])); Console.WriteLine(""); } return; } else if (args[0].Equals("-g", StringComparison.OrdinalIgnoreCase)) { var r = helper.GetServiceState(configHandler.ServiceSummary.ServiceName); switch (r) { case NativeInstaller.ServiceState.SERVICE_STOPPED: Console.WriteLine("Service State: Stopped"); break; case NativeInstaller.ServiceState.SERVICE_START_PENDING: Console.WriteLine("Service State: Wait Start"); break; case NativeInstaller.ServiceState.SERVICE_STOP_PENDING: Console.WriteLine("Service State: Wait Stop"); break; case NativeInstaller.ServiceState.SERVICE_RUNNING: Console.WriteLine("Service State: Running"); break; case NativeInstaller.ServiceState.SERVICE_CONTINUE_PENDING: Console.WriteLine("Service State: Wait Continue"); break; case NativeInstaller.ServiceState.SERVICE_PAUSE_PENDING: Console.WriteLine("Service State: Wait Pause"); break; case NativeInstaller.ServiceState.SERVICE_PAUSED: Console.WriteLine("Service State: Pause"); break; } } else if (args[0].Equals("/gui", StringComparison.OrdinalIgnoreCase)) { HostGUI gui = new HostGUI(); gui.InitHost(configHandler, _exePath); gui.ShowDialog(); Console.ReadKey(); } else if (args[0].Equals("/?", StringComparison.OrdinalIgnoreCase)) { WriteHelp(); } else if (args[0].Equals("/c", StringComparison.OrdinalIgnoreCase)) { WriteHelpC(); } } else { RunAsService(); } }