Пример #1
0
        // 系统环境检测者
        public static bool Check(out string errMsg)
        {
            errMsg = "";

            if (!XMLHelper.LoadDoc(Config.projectConfigPath, out doc, out errMsg))
            {
                return(false);
            }

            if (!CheckAndCreateConnStr(out errMsg))
            {
                return(false);
            }

            if (!IPTool.PingIP(Config.ip))
            {
                errMsg = "业务数据库网络不通,请保证网络通畅!";
                return(false);
            }

            if (!checkConnect())
            {
                errMsg = "测试连接业务数据库失败!";
                return(false);
            }

            return(true);
        }
Пример #2
0
        public static bool CheckPandaYaLiWEB(out string errMsg)
        {
            errMsg = "";

            if (!XMLHelper.LoadDoc(Config.configFilePath, out doc, out errMsg))
            {
                return(false);
            }
            if (!CheckAndCreateConnStr(out errMsg))
            {
                return(false);
            }
            if (!IPTool.PingIP(ip))
            {
                errMsg = "业务数据库网络不通,请保证网络通畅!";
                return(false);
            }
            if (!checkConnect())
            {
                errMsg = "测试连接业务数据库失败!";
                return(false);
            }

            if (!CheckAndCreatePandaYaLiParam(out errMsg))
            {
                return(false);
            }

            doc = null;

            return(true);
        }
Пример #3
0
        // 系统环境检测者
        public static bool Check(out string errMsg)
        {
            errMsg = "";

            if (!XMLHelper.LoadDoc(Config.projectConfigPath, out doc, out errMsg))
            {
                return(false);
            }

            if (!CheckAndCreateConnStr(out errMsg))
            {
                return(false);
            }

            if (!CheckAndCreateConfig(out errMsg))
            {
                return(false);
            }

            if (!IPTool.PingIP(Config.ip))
            {
                errMsg = "业务数据库网络不通,请保证网络通畅!";
                return(false);
            }

            if (!checkConnect())
            {
                errMsg = "测试连接业务数据库失败!";
                return(false);
            }

            Config.pumpParam              = new CityWEBDataService.PandaParam();
            Config.pumpParam.appKey       = "34h3rj3ri3jrt5y778934t5yfg3333h4h";
            Config.pumpParam.appSecret    = "45tnn5juyojgn3rn3fnn3t5j4to3fn6y64p3";
            Config.pumpParam.getTokenUrl  = @"https://new.s-water.cn/App/GetAccessToken";
            Config.pumpParam.getDataUrl   = @"https://new.s-water.cn/App/GetPumpData";
            Config.pumpParam.useName      = "汝南";
            Config.pumpParam.saveInterVal = Config.saveInterVal;
            if (!Config.pumpParam.Check(out errMsg))
            {
                return(false);
            }

            // 请求方法不一样,其它都一样
            //Config.yaLiParam = new CityWEBDataService.PandaParam();
            //Config.yaLiParam.appKey = Config.pumpParam.appKey;
            //Config.yaLiParam.appSecret = Config.pumpParam.appSecret;
            //Config.yaLiParam.getTokenUrl = Config.pumpParam.getTokenUrl;
            //Config.yaLiParam.getDataUrl = @"https://new.s-water.cn/App/GetYLData";
            //Config.yaLiParam.useName = Config.pumpParam.useName;
            //Config.yaLiParam.saveInterVal = Config.pumpParam.saveInterVal;
            //if (!Config.yaLiParam.Check(out errMsg))
            //    return false;

            return(true);
        }
Пример #4
0
 public bool Check(out string err)
 {
     err = "";
     if (!string.IsNullOrWhiteSpace(errMsg))
     {
         err = errMsg;
         return(false);
     }
     if (string.IsNullOrWhiteSpace(commandIP))
     {
         err = "配置文件物联控制主机不是有效的IP地址";
         return(false);
     }
     if (!IPTool.PingIP(commandIP))
     {
         err = "配置文件物联控制主机网络不通";
         return(false);
     }
     if (port == 0)
     {
         err = "配置文件物联控制主机端口不能为0";
         return(false);
     }
     if (IPTool.IsValidPort(port))
     {
         err = "配置文件物联控制主机端口为空闲端口,请检查物联网服务是否启动";
         return(false);
     }
     if (timeoutSeconds == 0)
     {
         err = "配置文件物联控制主机缺少服务超时时间数配置";
         return(false);
     }
     if (string.IsNullOrWhiteSpace(DBUtil.dbConnectString))
     {
         err = "数据库连接字符串未配置";
         return(false);
     }
     return(true);
 }
Пример #5
0
        public void Start()
        {
            try
            {
                // 启动前配置文件检查--包括端口检查
                Config.configInfo = EnvConfigInfo.SingleInstanceForCS;
                if (!Config.configInfo.EnvCheckForBeforeRun(out string errMsg))
                {
                    return;
                }

                // 日志管理器
                if (LogManager.IsRuning)
                {
                    LogManager.Stop();
                }
                LogManager.Start(Config.configInfo.confLogServiceInfo, out errMsg);
                if (!string.IsNullOrWhiteSpace(errMsg) || LogManager.IsRuning == false)
                {
                    Stop();
                    return;
                }
                LogManager.AppendDebug(ServerTypeName.Core, "日志管理器已经启动");

                // 环境检查-日志启动后,在检查其它配置环境,让错误信息可以报出来
                if (!IPTool.PingIP(Config.configInfo.confDataBaseInfo.IP))
                {
                    TraceManagerForDispatch.AppendWarning("ping:" + Config.configInfo.confDataBaseInfo.IP + "返回超时"); // 有可能开了防火墙
                }
                if (!EnvChecker.Check(Config.configInfo, out errMsg))
                {
                    TraceManagerForDispatch.AppendErrMsg("环境检查未通过:" + errMsg); // 不用听,让客户端主动停,看到消息
                    return;
                }
                else
                {
                    TraceManagerForDispatch.AppendInfo(string.Format("环境检查通过:已加载【{0}】配置", Config.configInfo.confProjectInfo.ProjectName));
                }


                //// 数据发布器
                //if (dataPublish != null)
                //    dataPublish.Stop();
                //dataPublish = new DataPublishServer(Config.projectConfigPath);
                //dataPublish.Start(out  errMsg);
                //if (!string.IsNullOrWhiteSpace(errMsg) || dataPublish.IsRuning == false)
                //{
                //    Stop();
                //    return;
                //}
                //LogManager.AppendDebug(ServerTypeName.Dispatch, "数据发布器已经启动");

                // 子服务管理器
                if (sonServiceManager != null)
                {
                    sonServiceManager.Stop();
                }
                sonServiceManager = new SonServiceManager();
                sonServiceManager.Start(out errMsg);
                if (!string.IsNullOrWhiteSpace(errMsg) || sonServiceManager.IsRuning == false)
                {
                    Stop();
                    return;
                }
                LogManager.AppendDebug(ServerTypeName.Core, "子服务管理器器已经启动");

                // 命令管理器
                if (CommandManager.IsRuning)
                {
                    CommandManager.Stop();
                }
                CommandManager.Start(this.sonServiceManager.ReceiveCommand, Config.configInfo.confCommandServiceInfo, out errMsg);
                if (!string.IsNullOrWhiteSpace(errMsg) || CommandManager.IsRuning == false)
                {
                    Stop();
                    return;
                }
                LogManager.AppendDebug(ServerTypeName.Core, "命令管理器已经启动");

                LogManager.AppendInfo(ServerTypeName.Core, "所有服务都已经启动");

                IsRuning = true;
            }
            catch (Exception e)
            {
                if (LogManager.IsRuning)
                {
                    LogManager.AppendErrMsg(ServerTypeName.Core, "服务启动失败:" + e.Message + "堆栈:" + e.StackTrace);
                }
                Stop();
            }
        }