Ejemplo n.º 1
0
        public static bool CreateClient()
        {
            if (service != null)
            {
                return(true);
            }

            try
            {
                var host = HostManager.GetClientHost(ProjectConfiguration.Address);

                var binding = new NetTcpBinding
                {
                    Name = "my_binding",
                    HostNameComparisonMode = HostNameComparisonMode.StrongWildcard,
                    MaxBufferSize          = UInt16.MaxValue * 16
                };
                binding.Security.Mode = SecurityMode.None;
                binding.TransferMode  = TransferMode.Buffered;

                //var b = new BasicHttpBinding(BasicHttpSecurityMode.None);

                var channelFactory = new ChannelFactory <IRLTTaskManagerService>(binding);
                var eP             = new EndpointAddress(host);
                service = channelFactory.CreateChannel(eP);

                channelFactory.Closed += channelFactory_Closed;

                LogManager.LogInfo(unit, string.Format("Связь с каналом '{0}' установлена", ProjectConfiguration.Address));
                DoConnected();

                return(true);
            }
            catch (Exception ex)
            {
                LogManager.LogError(unit, string.Format("Ошибка связи с каналом: {0} ", ProjectConfiguration.Address), ex);

                CloseClient();

                return(false);
            }
        }
Ejemplo n.º 2
0
        static void ClientThread(object obj)
        {
            //var host = HostManager.GetClientHost("192.168.186.1");
            var host = HostManager.GetClientHost(hostIP);

            var state = (ThreadState)obj;

            var binding = new NetTcpBinding
            {
                Name = "my_binding",
                HostNameComparisonMode = HostNameComparisonMode.StrongWildcard,
                MaxBufferSize          = UInt16.MaxValue * 16,
            };

            binding.Security.Mode = SecurityMode.None;
            //binding.
            binding.TransferMode = TransferMode.Buffered;

            //var b = new BasicHttpBinding(BasicHttpSecurityMode.None);

            var channelFactory = new ChannelFactory <IRLTTaskManagerService>(binding);
            var eP             = new EndpointAddress(host);
            var service        = channelFactory.CreateChannel(eP);

            channelFactory.Faulted += channelFactory_Faulted;

            var fromDate = DateTime.Now.AddDays(-100);

            try
            {
                while (true)
                {
                    state.LastRequest = DateTime.Now;

                    //Console.WriteLine(string.Format("[{0}] Чтение", state.Index));

                    var result     = new List <AgrProject>();
                    var previousId = -1;

                    while (true)
                    {
                        state.IsRequestWait = true;

                        var projects = service.GetProjects(fromDate, previousId);
                        if (projects == null)
                        {
                            break;
                        }

                        state.IsRequestWait = false;

                        result.AddRange(projects);
                        if (projects.Count < 10)
                        {
                            break;
                        }

                        var previous = projects.Last();
                        previousId = previous.ProjectId;
                        //fromDate = previous.TimeEndActual ?? DateTime.MinValue;

                        //foreach (var p in projects)
                        //    Console.Write(string.Format("{0} [{1}]\n", p.ProjectId, p.ID));


                        //Console.WriteLine(previous.ProjectId + " : " + previous.TimeEndActual);
                    }

                    // ждем 500 мсек
                    Thread.Sleep(3000);
                    //Console.Clear();
                }
            }
            catch (Exception ex)
            {
                state.Ex = ex;
                //Console.WriteLine(string.Format("[{0}] Процесс упал exception: {1}", state.Index, ex.Message));
            }
        }