/// <summary> /// 如果集群的时候根据WCF设置表(WcfConfigInfo)设置的群组ID对应的百分比权重生成随机数组服务(要求:百分比加起来是百分之一百) /// 集群的时候,有可能某些服务器比较好,有些配置比较低。 /// 集群需要考虑:数据库主从复制等问题。 /// </summary> /// <param name="strWcfGroup"></param> public static List <string> GenServiceArrayByPercentage(string strWcfGroup) { List <WcfConfigInfo> lstWcfConfigInfo = new WcfConfigInfoDAL().GetListArray("WcfGroup='" + strWcfGroup + "'"); List <string> lstInfo = new List <string>(); if (lstWcfConfigInfo.Count == 1) { lstInfo.Add(lstWcfConfigInfo[0].EnpointBindUrl); return(lstInfo); } string[] strArray = new string[100]; foreach (WcfConfigInfo item in lstWcfConfigInfo) { int intPercentage; if (int.TryParse(item.Percentage.ToString(), out intPercentage) == false) { throw new Exception("百分比输入不合法,请输入整数"); } for (int i = 0; i < intPercentage; i++) { lstInfo.Add(item.EnpointBindUrl.TrimEnd('/') + "/" + item.WcfServiceClassName); } } RandomList.Random(ref lstInfo); Services = lstInfo; return(lstInfo); }
private void FrmWcfHost_Load(object sender, EventArgs e) { chkAutoRun.Visible = GetConfigKeyValue("AutoRun") == "true"; WcfConfigInfoDAL dal = new WcfConfigInfoDAL(); List <WcfConfigInfo> lstInfo = dal.GetListArray("State=1"); foreach (WcfConfigInfo item in lstInfo) { TreeNode node = treeView1.Nodes.Add("[" + item.WcfServiceName + "]");//+ item.EnpointBindUrl node.Tag = item; } if (lstInfo.Count > 0) { foreach (TreeNode item in treeView1.Nodes) { item.Checked = true; } if (GetConfigKeyValue("AutoRunService") == "true") { btnStartService_Click(null, null); } } }