private void StartWCFService() { try { wcfService = new WCF.WCFService(); sHost = new ServiceHost(wcfService); wcfService.MessageReceived += new EventHandler <WCF.CustomEventArgs>(wcfService_MessageReceived); sHost.Open(); } catch (Exception ex) { logging.AddToLog("Error starting WCF service: " + ex.Message, true); } }
private void StartWCFService() { try { wcfService = new WCF.WCFService(); sHost = new ServiceHost(wcfService); wcfService.MessageReceived += new EventHandler<WCF.CustomEventArgs>(wcfService_MessageReceived); sHost.Open(); } catch (Exception ex) { logging.AddToLog("Error starting WCF service: " + ex.Message, true); } }
/// <summary> /// OnStart: Put startup code here /// - Start threads, get inital data, etc. /// </summary> /// <param name="args"></param> protected override void OnStart(string[] args) { //#if (DEBUG) // Debugger.Launch(); //<-- Simple form to debug a web services //#endif try { IPHostEntry ipEntry = Dns.GetHostByName(Common.ComputerName); IPAddress[] addr = ipEntry.AddressList; _computerIP = addr[0].ToString(); System.IO.FileInfo file = new System.IO.FileInfo(Common.ApiPath + "/Logs/"); file.Directory.Create(); if (osae.GetObjectPropertyValue("SYSTEM", "Prune Logs").Value == "TRUE") { string[] files = Directory.GetFiles(Common.ApiPath + "/Logs/"); foreach (string f in files) File.Delete(f); } string[] stores = Directory.GetFiles(Common.ApiPath, "*.store", SearchOption.AllDirectories); foreach (string f in stores) File.Delete(f); } catch (Exception ex) { logging.AddToLog("Error getting registry settings and/or deleting logs: " + ex.Message, true); } logging.AddToLog("OnStart", true); logging.AddToLog("Removing orphaned methods", true); try { using (MySqlConnection connection = new MySqlConnection(Common.ConnectionString)) { connection.Open(); MySqlCommand command = new MySqlCommand(); command.Connection = connection; command.CommandText = "SET sql_safe_updates=0; DELETE FROM osae_method_queue;"; osae.RunQuery(command); } } catch (Exception ex) { logging.AddToLog("Error clearing method queue details: \r\n" + ex.Message, true); } logging.AddToLog("Creating Computer object", true); if (osae.GetObjectByName(osae.ComputerName) == null) { OSAEObject obj = osae.GetObjectByAddress(_computerIP); if (obj == null) { osae.ObjectAdd(osae.ComputerName, osae.ComputerName, "COMPUTER", _computerIP, "", true); osae.ObjectPropertySet(osae.ComputerName, "Host Name", osae.ComputerName); } else if (obj.Type == "COMPUTER") { osae.ObjectUpdate(obj.Name, osae.ComputerName, obj.Description, "COMPUTER", _computerIP, obj.Container, obj.Enabled); osae.ObjectPropertySet(osae.ComputerName, "Host Name", osae.ComputerName); } else { osae.ObjectAdd(osae.ComputerName + "." + _computerIP, osae.ComputerName, "COMPUTER", _computerIP, "", true); osae.ObjectPropertySet(osae.ComputerName + "." + _computerIP, "Host Name", osae.ComputerName); } } else { OSAEObject obj = osae.GetObjectByName(osae.ComputerName); osae.ObjectUpdate(obj.Name, obj.Name, obj.Description, "COMPUTER", _computerIP, obj.Container, obj.Enabled); osae.ObjectPropertySet(obj.Name, "Host Name", osae.ComputerName); } try { logging.AddToLog("Creating Service object", true); OSAEObject svcobj = osae.GetObjectByName("SERVICE-" + osae.ComputerName); if (svcobj == null) osae.ObjectAdd("SERVICE-" + osae.ComputerName, "SERVICE-" + osae.ComputerName, "SERVICE", "", "SYSTEM", true); osae.ObjectStateSet("SERVICE-" + osae.ComputerName, "ON"); } catch (Exception ex) { logging.AddToLog("Error creating service object - " + ex.Message, true); } try { serviceHost.Open(); } catch (Exception ex) { logging.AddToLog("Error starting RESTful web service: " + ex.Message, true); } wcfService = new WCF.WCFService(); sHost = new ServiceHost(wcfService); wcfService.MessageReceived += new EventHandler<WCF.CustomEventArgs>(wcfService_MessageReceived); try { sHost.Open(); } catch (Exception ex) { logging.AddToLog("Error starting WCF service: " + ex.Message, true); } Thread QueryCommandQueueThread = new Thread(new ThreadStart(QueryCommandQueue)); QueryCommandQueueThread.Start(); updates.Interval = 86400000; updates.Enabled = true; updates.Elapsed += new ElapsedEventHandler(getPluginUpdates_tick); Thread loadPluginsThread = new Thread(new ThreadStart(LoadPlugins)); loadPluginsThread.Start(); //checkPlugins.Interval = 60000; //checkPlugins.Enabled = true; //checkPlugins.Elapsed += new ElapsedEventHandler(checkPlugins_tick); Thread updateThread = new Thread(() => getPluginUpdates()); updateThread.Start(); }
/// <summary> /// OnStart: Put startup code here /// - Start threads, get inital data, etc. /// </summary> /// <param name="args"></param> protected override void OnStart(string[] args) { //#if (DEBUG) // Debugger.Launch(); //<-- Simple form to debug a web services //#endif try { osae.APIpath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName); IPHostEntry ipEntry = Dns.GetHostByName(osae.ComputerName); IPAddress[] addr = ipEntry.AddressList; _computerIP = addr[0].ToString(); System.IO.FileInfo file = new System.IO.FileInfo(osae.APIpath + "/Logs/"); file.Directory.Create(); if (osae.GetObjectPropertyValue("SYSTEM", "Prune Logs").Value == "TRUE") { string[] files = Directory.GetFiles(osae.APIpath + "/Logs/"); foreach (string f in files) { File.Delete(f); } } string[] stores = Directory.GetFiles(osae.APIpath, "*.store", SearchOption.AllDirectories); foreach (string f in stores) { File.Delete(f); } } catch (Exception ex) { osae.AddToLog("Error getting registry settings and/or deleting logs: " + ex.Message, true); } osae.AddToLog("OnStart", true); osae.AddToLog("Removing orphaned methods", true); try { MySqlConnection connection = new MySqlConnection("SERVER=" + osae.DBConnection + ";" + "DATABASE=" + osae.DBName + ";" + "PORT=" + osae.DBPort + ";" + "UID=" + osae.DBUsername + ";" + "PASSWORD="******";"); connection.Open(); MySqlCommand command = new MySqlCommand(); command.Connection = connection; command.CommandText = "SET sql_safe_updates=0; DELETE FROM osae_method_queue;"; osae.RunQuery(command); connection.Close(); } catch (Exception ex) { osae.AddToLog("Error clearing method queue", true); } osae.AddToLog("Creating Computer object", true); if (osae.GetObjectByName(osae.ComputerName) == null) { OSAEObject obj = osae.GetObjectByAddress(_computerIP); if (obj == null) { osae.ObjectAdd(osae.ComputerName, osae.ComputerName, "COMPUTER", _computerIP, "", true); osae.ObjectPropertySet(osae.ComputerName, "Host Name", osae.ComputerName); } else if (obj.Type == "COMPUTER") { osae.ObjectUpdate(obj.Name, osae.ComputerName, obj.Description, "COMPUTER", _computerIP, obj.Container, obj.Enabled); osae.ObjectPropertySet(osae.ComputerName, "Host Name", osae.ComputerName); } else { osae.ObjectAdd(osae.ComputerName + "." + _computerIP, osae.ComputerName, "COMPUTER", _computerIP, "", true); osae.ObjectPropertySet(osae.ComputerName + "." + _computerIP, "Host Name", osae.ComputerName); } } else { OSAEObject obj = osae.GetObjectByName(osae.ComputerName); osae.ObjectUpdate(obj.Name, obj.Name, obj.Description, "COMPUTER", _computerIP, obj.Container, obj.Enabled); osae.ObjectPropertySet(obj.Name, "Host Name", osae.ComputerName); } try { osae.AddToLog("Creating Service object", true); OSAEObject svcobj = osae.GetObjectByName("SERVICE-" + osae.ComputerName); if (svcobj == null) { osae.ObjectAdd("SERVICE-" + osae.ComputerName, "SERVICE-" + osae.ComputerName, "SERVICE", "", "SYSTEM", true); } osae.ObjectStateSet("SERVICE-" + osae.ComputerName, "ON"); } catch (Exception ex) { osae.AddToLog("Error creating service object - " + ex.Message, true); } try { serviceHost.Open(); } catch (Exception ex) { osae.AddToLog("Error starting RESTful web service: " + ex.Message, true); } wcfService = new WCF.WCFService(); sHost = new ServiceHost(wcfService); wcfService.MessageReceived += new EventHandler <WCF.CustomEventArgs>(wcfService_MessageReceived); try { sHost.Open(); } catch (Exception ex) { osae.AddToLog("Error starting WCF service: " + ex.Message, true); } Thread QueryCommandQueueThread = new Thread(new ThreadStart(QueryCommandQueue)); QueryCommandQueueThread.Start(); updates.Interval = 86400000; updates.Enabled = true; updates.Elapsed += new ElapsedEventHandler(getPluginUpdates_tick); Thread loadPluginsThread = new Thread(new ThreadStart(LoadPlugins)); loadPluginsThread.Start(); checkPlugins.Interval = 60000; checkPlugins.Enabled = true; checkPlugins.Elapsed += new ElapsedEventHandler(checkPlugins_tick); Thread updateThread = new Thread(() => getPluginUpdates()); updateThread.Start(); }