/// <summary> /// 启动所有服务 /// </summary> public void StartAllServer() { int port = 13000; //IPAddress[] ips = NetTool.GetLocalIPS(); //if (ips != null && ips.Length > 0) //{ // IPAddress ipa = ips[0]; IPAddress ipa = GlobalVariables.CurrentParkingCommunicationIP; if (ipa != null) { foreach (ParkInfo park in ParkBuffer.Current.Parks) { if (park.ParentID == null) { if (park.DeviceType != EntranceDeviceType.CANEntrance || park.CommPort > 0) //如果是CAN总线停车场必须设置串口号才有效 { string address = "net.tcp://" + ipa.ToString() + ":" + (port + park.ParkID).ToString() + "/ParkAdapter"; park.ParkAdapterUri = address; (new ParkBll(AppSettings.CurrentSetting.ParkConnect)).Update(park); IParkingAdapter ad = new ParkingAdapterServer(park); Uri uri = new Uri(address); Binding binding = BindingFactory.CreateDualBinding(address); ServiceHost host = new ServiceHost(ad); host.AddServiceEndpoint(typeof(IParkingAdapter), binding, address); host.Open(); } } } } }
/// <summary> /// 启动工作站的所有停车场服务 /// </summary> /// <param name="stationID"></param> public void StartServer(string workstationID) { int port = 13000; IPAddress ipa = GlobalVariables.CurrentParkingCommunicationIP; if (ipa != null) { foreach (ParkInfo park in ParkBuffer.Current.Parks) { if (park.HostWorkstation == workstationID && park.ParentID == null) { if (park.DeviceType != EntranceDeviceType.CANEntrance || park.CommPort > 0) //如果是CAN总线停车场必须设置串口号才有效 { string address = "net.tcp://" + ipa.ToString() + ":" + (port + park.ParkID).ToString() + "/ParkAdapter"; park.ParkAdapterUri = address; UpdateParkAdapterUri(park); IParkingAdapter ad = new ParkingAdapterServer(park); Uri uri = new Uri(address); Binding binding = BindingFactory.CreateDualBinding(address); ServiceHost host = new ServiceHost(ad); host.AddServiceEndpoint(typeof(IParkingAdapter), binding, address); host.Open(); } } } } }