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); } } }