示例#1
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;
            }
        }
示例#2
0
 public static void Inicializar(LocalizadorClienteConfig config)
 {
     _config = config;
 }
示例#3
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;
            }
        }