Example #1
0
 public static void Desconectar()
 {
     if (_servicoLocalizador != null)
     {
         _servicoLocalizador = null;
     }
     if (_canal != null)
     {
         _canal.Close();
     }
 }
Example #2
0
        public static void Conectar()
        {
            try
            {
                // Inicializa
                bool local = true;

                // Verifica como o servico deve ser criado
                if (_config == null)
                {
                    _config = GerenciadorConfig.ReceberConfig <LocalizadorClienteConfig>();
                }
                if (_config != null && _config.AtivacaoTipo == ServicoAtivacaoTipo.WCF)
                {
                    local = false;
                }

                // Cria o servico
                if (local)
                {
                    // Cria local
                    _servicoLocalizador =
                        (IServicoLocalizador)
                        ServicoHostColecao.Default.ReceberServico <IServicoLocalizador>();
                }
                else
                {
                    // Cria via wcf
                    Binding binding =
                        (Binding)
                        typeof(BasicHttpBinding).Assembly.CreateInstance(
                            _config.EndPoint.NomeBindingType);
                    _canal = new ChannelFactory <IServicoLocalizador>(binding);
                    _servicoLocalizador =
                        _canal.CreateChannel(
                            new EndpointAddress(
                                _config.EndPoint.Endereco));
                }
            }
            catch (Exception ex)
            {
                Log.EfetuarLog(ex, null, "OMS.Library.Servicos");
                throw ex;
            }
        }
Example #3
0
        public static void Desconectar()
        {
            try
            {
                LocalizadorCliente.MutexLocalizador.WaitOne();

                if (_servicoLocalizador != null)
                {
                    _servicoLocalizador = null;
                }
                if (_canal != null)
                {
                    _canal.Close();
                }

                LocalizadorCliente.MutexLocalizador.ReleaseMutex();
            }
            catch (Exception ex)
            {
                logger.Error("Erro em Desconectar(): ", ex);
            }
        }
Example #4
0
        public static void Conectar()
        {
            try
            {
                // Inicializa
                bool local = true;

                // Verifica como o servico deve ser criado
                if (_config == null)
                {
                    _config = GerenciadorConfig.ReceberConfig <LocalizadorClienteConfig>();
                }
                if (_config != null && _config.AtivacaoTipo == ServicoAtivacaoTipo.WCF)
                {
                    local = false;
                }

                // Cria o servico
                if (local)
                {
                    // Cria local
                    _servicoLocalizador =
                        (IServicoLocalizador)
                        ServicoHostColecao.Default.ReceberServico <IServicoLocalizador>();
                }
                else
                {
                    // Cria via wcf
                    string bindingType = _getBindingType(_config.EndPoint.Endereco);

                    Binding binding =
                        (Binding)
                        typeof(BasicHttpBinding).Assembly.CreateInstance(bindingType);
                    binding.ReceiveTimeout = new TimeSpan(0, 2, 0);
                    binding.SendTimeout    = new TimeSpan(0, 1, 0);
                    binding.OpenTimeout    = new TimeSpan(0, 0, 30);
                    binding.CloseTimeout   = new TimeSpan(0, 0, 30);

                    if (_config.EndPoint.Endereco.StartsWith("https://"))
                    {
                        System.Net.ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(
                            delegate(object sender,
                                     System.Security.Cryptography.X509Certificates.X509Certificate certificate,
                                     System.Security.Cryptography.X509Certificates.X509Chain chain,
                                     System.Net.Security.SslPolicyErrors sslPolicyErrors) { return(true); });

                        ((BasicHttpBinding)binding).Security.Mode = BasicHttpSecurityMode.Transport;
                        ((BasicHttpBinding)binding).Security.Transport.ClientCredentialType = HttpClientCredentialType.None;
                    }


                    _canal = new ChannelFactory <IServicoLocalizador>(binding);
                    _servicoLocalizador =
                        _canal.CreateChannel(
                            new EndpointAddress(
                                _config.EndPoint.Endereco));
                    _canal.Faulted += new EventHandler(_channelFaulted);

                    _lastRequest = DateTime.Now.Ticks;

                    ((IContextChannel)_servicoLocalizador).OperationTimeout = new TimeSpan(0, 10, 0);
                }
            }
            catch (Exception ex)
            {
                logger.Error("Erro em Conectar(): ", ex);
                throw ex;
            }
        }