Exemplo n.º 1
0
        /// <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();
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
        /// <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();
                        }
                    }
                }
            }
        }