219 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			219 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			C#
		
	
	
	
| 
								 | 
							
								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 <LastAccess> element---
							 | 
						|||
| 
								 | 
							
								             element = xml.CreateElement("Host");
							 | 
						|||
| 
								 | 
							
								             element.InnerText = host;
							 | 
						|||
| 
								 | 
							
								             xml.DocumentElement.AppendChild(element);
							 | 
						|||
| 
								 | 
							
								             //---create the <LastSearchString> 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;
							 | 
						|||
| 
								 | 
							
								        
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 |