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; } }
public static void Inicializar(LocalizadorClienteConfig config) { _config = config; }
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; } }