问题:
动态生成的button中有一个会读取ini文件的对象;
没点击一下button,ini文件内的ip将会改变;
但是所有的button中的对象都和第一个点击的button的对象的取得一样的ip!
代码流程:
1.程序Load时通过配置文件生成了相应数量的button和ip并注册了同样的事件;
2.点击button后ini文件内部值确实改变;
3.结果所有的结果都同样的;
1 string dsvsIp = (sender as Button).Tag.ToString(); 2 sbLog.AppendLine("服务器:" + dsvsIp); 3 //进行ini文件操作;如果ini文件不存在,自动创建,存在则直接读取; 4 FileInfo file = new FileInfo(@"C:\BJCAROOT\BJCA_SVS_Config.ini"); 5 FileStream fs = null; 6 fs = new FileStream(@"C:\BJCAROOT\BJCA_SVS_Config.ini", FileMode.OpenOrCreate, FileAccess.Write); 7 //修改ini文件的主机Ip; 8 try 9 { 10 using (StreamWriter m_streamWriter = new StreamWriter(fs, Encoding.GetEncoding("gb2312"))) 11 { 12 m_streamWriter.Flush(); 13 m_streamWriter.WriteLine("#服务器地址、端口、是否长连接(以下为短连接示例,去掉 disablereuse=on 项,则为长连接。)"); 14 m_streamWriter.WriteLine("ServerHost = tcp://" + dsvsIp + "/disablereuse=on"); 15 m_streamWriter.WriteLine(""); 16 m_streamWriter.WriteLine("## 超时时间"); 17 m_streamWriter.WriteLine("ServerTimeout = 5"); 18 m_streamWriter.WriteLine(""); 19 m_streamWriter.WriteLine("## 日志级别 info notice warn error crit alert emerg"); 20 m_streamWriter.WriteLine("LogLevel = error"); 21 m_streamWriter.WriteLine(); 22 m_streamWriter.WriteLine("## 日志文件"); 23 m_streamWriter.WriteLine("LogFile = d:/svscc.log"); 24 m_streamWriter.WriteLine(); 25 m_streamWriter.WriteLine("## 应用名"); 26 m_streamWriter.WriteLine("SVSApplicationName = SVSDefault"); 27 m_streamWriter.Flush(); 28 m_streamWriter.Dispose(); 29 m_streamWriter.Close(); 30 } 31 } 32 catch (Exception ee) 33 { 34 //每个Exception都要进行记录; 35 Console.WriteLine(ee.Message); 36 sbLog.AppendLine("读写root目录下的ini文件时:" + ee.Message); 37 } 38 finally 39 { 40 fs.Dispose(); 41 fs.Close(); 42 } 43 #region DSVSCheck 44 45 BJCASecCOMV2Class Cdsvs = new BJCASecCOMV2Class();//Com组件要求在每次点击的时候再重新new一个才能达到需求! 46 BJCASVSEngineClass dsvs = new BJCASVSEngineClass(); 47 string SignDataValue = dsvs.SignData("Test"); 48 string ServerCertificate = dsvs.GetServerCertificate(); 49 if (SignDataValue != null && SignDataValue != "") 50 { 51 sb.AppendLine("服务器签名操作:成功."); 52 sbLog.AppendLine("服务器签名操作:成功."); 53 } 54 else 55 { 56 sb.AppendLine("服务器签名操作:失败."); 57 sbLog.AppendLine("服务器签名操作:失败."); 58 } 59 if (ServerCertificate != null && ServerCertificate != "") 60 { 61 sb.AppendLine("服务器证书获取:成功."); 62 sbLog.AppendLine("服务器证书获取:成功."); 63 } 64 else 65 { 66 sb.AppendLine("服务器证书获取:失败."); 67 sbLog.AppendLine("服务器证书获取:失败."); 68 } 69 if (Cdsvs.GetUserList() != null && Cdsvs.GetUserList() != "") 70 { 71 string userList = Cdsvs.GetUserList(); 72 string str2 = userList.Replace("||", "|"); 73 string[] str3 = str2.Split('|'); 74 if (str3 != null) 75 { 76 sb.AppendLine("USBKey证书获取:成功."); 77 sbLog.AppendLine("USBKey证书获取:成功."); 78 } 79 else 80 { 81 sb.AppendLine("USBKey证书获取:失败."); 82 sbLog.AppendLine("USBKey证书获取:失败."); 83 } 84 } 85 else 86 { 87 sb.AppendLine("USBKey证书获取:失败."); 88 sbLog.AppendLine("USBKey证书获取:失败."); 89 } 90 tbCheck.Text = sb.ToString(); 91 Cdsvs.Clear(); 92 #endregion 93 }
fuck,我说我d盘怎么老生成一个svscc.log日志文件,原来是你们北京CA搞得。能不能再坑点
被你发现了。
写个日志嘛,别在意了~