Exemple #1
0
        public static bool InitReplicaSet(string replSetName, ref string strMessage)
        {
            var result = CommandHelper.InitReplicaSet(replSetName,
                                                      RuntimeMongoDbContext.GetCurrentServerConfig().ConnectionName,
                                                      MongoConnectionConfig.MongoConfig.ConnectionList);

            if (result.Ok)
            {
                //修改配置
                var newConfig = RuntimeMongoDbContext.GetCurrentServerConfig();
                newConfig.ReplSetName = replSetName;
                newConfig.ReplsetList = new List <string>
                {
                    newConfig.Host +
                    (newConfig.Port != 0 ? ":" + newConfig.Port : string.Empty)
                };
                MongoConnectionConfig.MongoConfig.ConnectionList[newConfig.ConnectionName] = newConfig;
                MongoConnectionConfig.MongoConfig.SaveMongoConfig();
                RuntimeMongoDbContext.MongoConnSvrLst.Remove(newConfig.ConnectionName);
                RuntimeMongoDbContext.MongoConnSvrLst.Add(
                    RuntimeMongoDbContext.CurrentMongoConnectionconfig.ConnectionName,
                    RuntimeMongoDbContext.CreateMongoServer(ref newConfig));
                return(true);
            }
            strMessage = result.ErrorMessage;
            return(false);
        }
        /// <summary>
        ///     初始化副本
        /// </summary>
        /// <param name="replSetName"></param>
        /// <param name="strMessage"></param>
        /// <returns></returns>
        public static bool InitReplicaSet(string replSetName, ref string strMessage)
        {
            //注意:这里的replSetName名称只是为了设定本工具用的MongoConfig信息,
            //实际的replSetName名称应该在启动命令中
            var result = DataBaseCommand.InitReplicaSet();

            if (result.Ok)
            {
                //修改配置
                var newConfig = RuntimeMongoDbContext.GetCurrentServerConfig();
                newConfig.ReplSetName = replSetName;
                newConfig.ReplsetList = new List <string>
                {
                    newConfig.Host +
                    (newConfig.Port != 0 ? ":" + newConfig.Port : string.Empty)
                };
                MongoConnectionConfig.MongoConfig.ConnectionList[newConfig.ConnectionName] = newConfig;
                MongoConnectionConfig.MongoConfig.SaveMongoConfig();
                RuntimeMongoDbContext.MongoConnSvrLst.Remove(newConfig.ConnectionName);
                RuntimeMongoDbContext.MongoConnSvrLst.Add(
                    RuntimeMongoDbContext.CurrentMongoConnectionconfig.ConnectionName,
                    RuntimeMongoDbContext.CreateMongoServer(ref newConfig));
                strMessage = result.Response.ToJson(MongoHelper.JsonWriterSettings);
                return(true);
            }
            strMessage = result.ErrorMessage;
            return(false);
        }
 /// <summary>
 ///     刷新配置文件副本状态
 /// </summary>
 /// <param name="newConfig"></param>
 public static void RefreshConnectionConfig(MongoConnectionConfig newConfig)
 {
     MongoConnectionConfig.MongoConfig.ConnectionList[newConfig.ConnectionName] = newConfig;
     MongoConnectionConfig.MongoConfig.SaveMongoConfig();
     RuntimeMongoDbContext.MongoConnSvrLst.Remove(newConfig.ConnectionName);
     RuntimeMongoDbContext.MongoConnSvrLst.Add(RuntimeMongoDbContext.CurrentMongoConnectionconfig.ConnectionName,
                                               RuntimeMongoDbContext.CreateMongoServer(ref newConfig));
 }
 /// <summary>
 ///     测试连接
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void cmdTest_Click(object sender, EventArgs e)
 {
     if (!CreateConnection())
     {
         return;
     }
     try
     {
         var srv = RuntimeMongoDbContext.CreateMongoServer(ref ModifyConn);
         srv.Connect();
         srv.Disconnect();
         MyMessageBox.ShowMessage("Connect Test", "Connected OK.");
     }
     catch (MongoAuthenticationException ex)
     {
         //需要验证的数据服务器,没有Admin权限无法获得数据库列表
         if (!GuiConfig.IsUseDefaultLanguage && !GuiConfig.IsMono)
         {
             MyMessageBox.ShowMessage(
                 GuiConfig.GetText(
                     TextType.ExceptionAuthenticationException),
                 GuiConfig.GetText(
                     TextType.ExceptionAuthenticationExceptionNote), ex.ToString(), true);
         }
         else
         {
             MyMessageBox.ShowMessage("MongoAuthenticationException:", "Please check UserName and Password",
                                      ex.ToString(), true);
         }
     }
     catch (Exception ex)
     {
         //暂时不处理任何异常,简单跳过
         //无法连接的理由:
         //1.服务器没有启动
         //2.认证模式不正确
         if (!GuiConfig.IsUseDefaultLanguage && !GuiConfig.IsMono)
         {
             MyMessageBox.ShowMessage(
                 GuiConfig.GetText(TextType.ExceptionNotConnected),
                 GuiConfig.GetText(
                     TextType.ExceptionNotConnectedNote),
                 ex.ToString(), true);
         }
         else
         {
             MyMessageBox.ShowMessage("Exception", "Mongo Server may not Startup or Auth Mode is not correct",
                                      ex.ToString(), true);
         }
     }
 }