private string SendCommandToNode(string DesServer, string CommandName, byte[] ParamData) { SystemStateItem _el = WatchSystemLib.GetSystem(DesServer); if (_el.Connected) { object[] _plist = new object[3] { "OK", CommandName, ParamData }; try { object _ret = ExecuteWCF.ExecuteMethod <SysWatchService.ISWCommandService>(_el.SystemURL, "DoCommand", _plist); byte[] _byteret = _ret as byte[]; string _msg = Encoding.Unicode.GetString(_byteret); return(_msg); } catch (Exception ex) { string _error = string.Format("从{0}中取当前状态出错!{1}", DesServer, ex.Message); throw new Exception(_error); } } else { string _error = string.Format("服务器[{0}]暂时尚未连接!", DesServer); throw new Exception(_error); } }
public static string ModifySystem(byte[] ParameterData) { try { string _decodeItem = WcfDataCompressControl.UnCompress(ParameterData); DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(SystemStateItem)); MemoryStream ms = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(_decodeItem.ToCharArray())); SystemStateItem _item = (SystemStateItem)serializer.ReadObject(ms); ms.Close(); //插入配置 Configuration cfa = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); SystemConfigSection CurrentSysList = (SystemConfigSection)cfa.GetSection("SystemList"); SystemConfigurationElement _el = CurrentSysList.PluginCollection[_item.SystemName]; _el.Description = _item.SystemDescription; _el.URL = _item.SystemURL; cfa.Save(); //插入缓存 SystemStateItem _c = WatchSystemLib.GetSystem(_item.SystemName); _c.SystemURL = _item.SystemURL; _c.SystemDescription = _item.SystemDescription; return("TRUE"); } catch (Exception ex) { return("False!" + ex.Message); } }
static void Main(string[] args) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); try { SystemConfigSection CurrentSysList = (SystemConfigSection)ConfigurationManager.GetSection("SystemList"); foreach (SystemConfigurationElement _el in CurrentSysList.PluginCollection) { SystemStateItem _item = new SystemStateItem(_el.Name, _el.URL, _el.Description); WatchSystemLib.AddSystem(_item); } if (args.Length == 0) { #if DEBUG Application.Run(new frmMain()); #else System.ServiceProcess.ServiceBase[] ServicesToRun; ServicesToRun = new System.ServiceProcess.ServiceBase[] { new SinoMonitorCenterService() }; System.ServiceProcess.ServiceBase.Run(ServicesToRun); #endif } else if (args[0].ToLower() == "/f" || args[0].ToLower() == "-f") { Application.Run(new frmMain()); } } catch (Exception ex) { EventLogSystemLog _log = new EventLogSystemLog("SinoMonitorCenterServiceLog"); _log.WriteLog(ex.Message, EventLogEntryType.Error); } }
private string DoGetNodeCheckMsg(string DesServer, byte[] ParameterData) { SystemStateItem _el = WatchSystemLib.GetSystem(DesServer); object[] _plist = new object[3] { "OK", "GetNodeCheckMsg", null }; try { object _ret = ExecuteWCF.ExecuteMethod <SysWatchService.ISWCommandService>(_el.SystemURL, "DoCommand", _plist); byte[] _byteret = _ret as byte[]; string _msg = Encoding.Unicode.GetString(_byteret); return(_msg); } catch (Exception ex) { string _error = string.Format("从{0}中取当前状态出错!{1}", DesServer, ex.Message); throw new Exception(_error); } }
public static string DelSystem(byte[] ParameterData) { try { string _delName = WcfDataCompressControl.UnCompress(ParameterData); //删除配置 Configuration cfa = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); SystemConfigSection CurrentSysList = (SystemConfigSection)cfa.GetSection("SystemList"); CurrentSysList.PluginCollection.Remove(_delName); cfa.Save(); //删除缓存 WatchSystemLib.RemoveSystem(_delName); return("TRUE"); } catch (Exception ex) { return("False!" + ex.Message); } }
public byte[] DoCommand(string CommandName, string DesServer, byte[] ParameterData) { byte[] _retbytes; string _retstr; string[] CmdStrs = CommandName.Split('.'); switch (CmdStrs[0]) { case "GetSystemList": _retstr = WatchSystemLib.GetJsonData(); _retbytes = WcfDataCompressControl.Compress(_retstr); break; case "AddWatchNode": _retstr = SystemNodeAccessor.AddSystem(ParameterData); _retbytes = WcfDataCompressControl.Compress(_retstr); break; case "DelWatchNode": _retstr = SystemNodeAccessor.DelSystem(ParameterData); _retbytes = WcfDataCompressControl.Compress(_retstr); break; case "ModifyWatchNode": _retstr = SystemNodeAccessor.ModifySystem(ParameterData); _retbytes = WcfDataCompressControl.Compress(_retstr); break; case "GetNodeCheckMsg": _retstr = DoGetNodeCheckMsg(DesServer, ParameterData); _retbytes = WcfDataCompressControl.Compress(_retstr); break; case "GetNodePluginVersion": _retstr = DoGetNodePluginVersion(DesServer, ParameterData); _retbytes = WcfDataCompressControl.Compress(_retstr); break; case "RemoveAppPlugin": _retstr = DoRemoveAppPlugin(DesServer, ParameterData); _retbytes = WcfDataCompressControl.Compress(_retstr); break; case "UpLoadFilePlugin": _retstr = DoUpLoadFilePlugin(DesServer, ParameterData); _retbytes = WcfDataCompressControl.Compress(_retstr); break; case "LoadAppPlugin": _retstr = DoLoadAppPlugin(DesServer, ParameterData); _retbytes = WcfDataCompressControl.Compress(_retstr); break; case "GetAppPluginList": _retstr = DoGetAppPluginList(DesServer, ParameterData); _retbytes = WcfDataCompressControl.Compress(_retstr); break; case "ExcuteNodeCommand": _retstr = DoExcuteNodeCommand(CommandName, DesServer, ParameterData); _retbytes = WcfDataCompressControl.Compress(_retstr); break; case "ExcuteNodeCommandWithByte": _retbytes = DoExcuteNodeCommandWithByte(CommandName, DesServer, ParameterData); break; default: _retstr = string.Format("命令[{0}]无法识别!", CommandName); _retbytes = WcfDataCompressControl.Compress(_retstr); break; } return(_retbytes); }