Exemple #1
0
        public bool TryGetValueByKey(string key, out FapConfig fapParam)
        {
            if (!_initialized)
            {
                Init();
            }
            var result = _allParams.FirstOrDefault <FapConfig>(f => f.ParamKey == key);

            if (result != null)
            {
                fapParam = result;
                return(true);
            }
            fapParam = null;
            return(false);
        }
        /// <summary>
        /// 重置服务注册状态
        /// </summary>
        private void LoadRegisterInfo()
        {
            lock (obj)
            {
                if (ServiceRegisterInfo != null)
                {
                    return;
                }
                //以下代码已经在docker发布脚本中执行,详见publish.sh文件
                //if(_dbSession.DatabaseDialect== Infrastructure.Enums.DatabaseDialectEnum.MSSQL)
                //{
                //    //检查clr enabled
                //    using (var session = _dbSession.CreateSession())
                //    {
                //       int enabled= session.ExecuteScalar<int>("select value from sys.configurations WHERE name = 'clr enabled'");
                //        if(enabled==0)
                //        {
                //            //设置clr enabled为1
                //            string sql = @"exec sp_configure 'show advanced options', '1';reconfigure;exec sp_configure 'clr enabled', '1'; reconfigure;exec sp_configure 'show advanced options', '1';";
                //            //数据库设置可信,OWNER设置成SA
                //            sql += $"ALTER DATABASE {session.Connection.Database} SET TRUSTWORTHY on;exec sp_changedbowner 'sa'";
                //            session.Execute(sql);
                //        }
                //    }
                //}
                FapConfig config = _dbSession.QueryFirstOrDefault <FapConfig>("select * from FapConfig where ParamKey = 'sys.web.name'");
                //项目名称
                string projectName = string.Empty;
                if (config != null)
                {
                    projectName = config.ParamValue;
                }
                if (string.IsNullOrWhiteSpace(projectName))
                {
                    ServiceRegisterInfo = new RegisterInfo();
                    ServiceRegisterInfo.RegisterState   = EnumRegisterState.UnRegister;
                    ServiceRegisterInfo.RegisterMessage = "当前项目名称为空,未注册";
                    return;
                }

                string      currentDateTime = DateTimeUtils.CurrentDateTimeStr;
                RegFileData regFileData     = TGljZW5zZQTool.GetTGljZW5zZQDataFromReg();
                string      TGljZW5zZQ      = regFileData.TGljZW5zZQ;
                string      trialExpire     = regFileData.TrialExpire;
                if (!string.IsNullOrWhiteSpace(TGljZW5zZQ))
                {
                    string         errMsg      = "";
                    TGljZW5zZQInfo licenseInfo = TGljZW5zZQInfo.Parse(TGljZW5zZQ, out errMsg);
                    if (licenseInfo == null)
                    {
                        ServiceRegisterInfo = new RegisterInfo();
                        ServiceRegisterInfo.RegisterState   = EnumRegisterState.UnRegister;
                        ServiceRegisterInfo.RegisterMessage = "当前项目[" + projectName + "]未注册";
                    }
                    else
                    {
                        ServiceRegisterInfo = licenseInfo.CheckLicense(projectName);
                    }
                }
                else //没有注册,则为未注册版
                {
                    ServiceRegisterInfo = new RegisterInfo();
                    ServiceRegisterInfo.RegisterState   = EnumRegisterState.UnRegister;
                    ServiceRegisterInfo.RegisterMessage = "当前项目[" + projectName + "]未注册";
                }
            }
        }