using System; using System.Linq; using System.Collections.Generic; using System.Text; using System.Xml.Linq; using System.Reflection; using System.ServiceModel; using System.ServiceModel.Channels; using System.Runtime.Serialization; using System.Xml; using System.IO; using DeiNiu.Wms.CE.Util; using DeiNiu.Wms.CE.utils; namespace DeiNiu.Wms.CE { public static class LoginInfo { public static int UserId { get; set; } public static string Password { get; set; } public static string Token { get; set; } public static string Account { get; set; } public static bool IsRemember { get; set; } } class WcfHelp { //static string url = Assembly.GetExecutingAssembly().GetName().CodeBase.Substring(0, Assembly.GetExecutingAssembly().GetName().CodeBase.LastIndexOf('\\') + 1) + "settings.xml"; // static XDocument doc = XDocument.Load (url); //static string host; //static string port; static string svrUrl; static string iniFile = Assembly.GetExecutingAssembly().GetName().CodeBase.Substring(0, Assembly.GetExecutingAssembly().GetName().CodeBase.LastIndexOf('\\') + 1) + "host.ini"; public static string iniHostPort; static string getPath() { return Assembly.GetExecutingAssembly().GetName().CodeBase.Substring(0, Assembly.GetExecutingAssembly().GetName().CodeBase.LastIndexOf('\\') + 1); } public static void updateConfig(string newHost, string newPort) { /* try { svrUrl = ""; string Path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase.ToString()) + "\\settings.xml"; XmlDocument Doc = new XmlDocument(); Doc.Load(Path); XmlNode ip = (XmlNode)Doc.SelectSingleNode("/Root/Host"); ip.InnerText = newHost +":" +newPort; Doc.Save(Path); // return true; } catch(Exception e) { throw e; // return false; } */ // XDocument xmlDoc = XDocument.Load(url); // doc.Element("Root").Element("Host").Value = host; // doc.Element("Root").Element("Port").Value = port; // doc.Root.Element("Port").SetValue(port); // doc.Root.Element("Host").Value = host; // XmlElement nodePort = (XmlElement)doc.Root.Element("Port"); // doc.Root.Element("Port").Value = port; //doc.Save(url); svrUrl = ""; WriteIni(newHost, newPort); // string url = Assembly.GetExecutingAssembly().GetName().CodeBase.Substring(0, Assembly.GetExecutingAssembly().GetName().CodeBase.LastIndexOf('\\') + 1) + "newsettings.xml"; /* XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(url); var root = xmlDoc.DocumentElement;//取到根结点 XmlElement node1 = (XmlElement)xmlDoc.SelectSingleNode("Root/Host"); node1.InnerText = host ; XmlElement node2 = (XmlElement)xmlDoc.SelectSingleNode("Root/Port"); node2.InnerText = port; xmlDoc.Save(url); string configFile = @"config.xml"; XmlDocument xml = new XmlDocument(); XmlElement element = xml.CreateElement("Root"); xml.AppendChild(element); //---create the element--- element = xml.CreateElement("Host"); element.InnerText = host; xml.DocumentElement.AppendChild(element); //---create the element--- element = xml.CreateElement("Port"); element.InnerText = port; xml.DocumentElement.AppendChild(element); xml.Save(configFile); * */ } public static void WriteIni(string newHost, string newPort) { iniHostPort = newHost + ":" + newPort; FileStream fs = new FileStream(iniFile, FileMode.Create); //获得字节数组 byte[] data = System.Text.Encoding.Default.GetBytes(iniHostPort); //开始写入 fs.Write(data, 0, data.Length); //清空缓冲区、关闭流 fs.Flush(); fs.Close(); } public static string ReadIni() { if (!File.Exists(iniFile)) { WriteIni("",""); } StreamReader sr = new StreamReader(iniFile, Encoding.Default); String line; line = sr.ReadLine(); sr.Close(); return line; } public static void writeFile(string file,string content){ FileStream fs = new FileStream(file, FileMode.Append); //获得字节数组 byte[] data = System.Text.Encoding.Default.GetBytes(content); //开始写入 fs.Write(data, 0, data.Length); //清空缓冲区、关闭流 fs.Flush(); fs.Close(); } public static string readSN(){ string idFile = getPath() + "deiniu.ini"; if (!File.Exists(idFile)) { #if debug writeFile(idFile, Utils.Encrypt(NetUtil.GetMac())); #endif return ""; } StreamReader sr = new StreamReader(idFile, Encoding.Default); String line; line = sr.ReadLine(); sr.Close(); return line; } public static string BuildUrl(string svrName) { if (string.IsNullOrEmpty(iniHostPort)) { //host = doc.Root.Element("Host").Value; //port = doc.Root.Element("Port").Value; iniHostPort = ReadIni(); // iniHostPort = doc.Root.Element("Host").Value; } if (string.IsNullOrEmpty(svrUrl)) { //svrUrl=string.Format("http://{0}:{1}/{2}.svc", host, port, svrName); svrUrl = string.Format("http://{0}/{1}.svc", iniHostPort, svrName); } return svrUrl; } public static BasicHttpBinding getBasicBinding() { BasicHttpBinding binding= new BasicHttpBinding(); binding.MaxReceivedMessageSize = int.MaxValue; binding.MaxBufferPoolSize = int.MaxValue; binding.MaxBufferSize = int.MaxValue; return binding; } public static EndpointAddress getEndpoint(string svrName){ // NetDataContractSerializer serializer = new NetDataContractSerializer(); string remoteAddress = WcfHelp.BuildUrl(svrName); //get address EndpointAddress endpoint = new EndpointAddress(remoteAddress); //MessageHeader hdUserId = MessageHeader.CreateHeader("UserId", "www.deinu.com", LoginInfo.UserId, serializer); //MessageHeader hdToken = MessageHeader.CreateHeader("Token", "www.deinu.com", LoginInfo.Token, serializer); // endpoint.Headers. //endpoint.Headers.Add(hdUserId); //endpoint.Headers.Add(hdToken); return endpoint; } } }