/// <summary> /// Show Logg Type Error /// </summary> /// <param name="Exception">Exception que gerou o erro</param> public static void Error(Exception exp) { if (exp is PointBlankException) { Warning(PointBlankException.GetMessageFull(exp, false)); return; } Error(PointBlankException.GetMessageFull(exp, true)); }
/// <summary> /// Show Logg Type Error /// </summary> /// <param name="Exception">Exception que gerou o erro</param> /// <param name="complemento">Complemento da mensagem de erro</param> /// <param name="stackTrace">Se true indica que será mostrado stackTrace</param> public static void Error(Exception exp, string complemento, bool stackTrace) { Error(PointBlankException.GetMessageFull(new PointBlankException(complemento, exp), stackTrace)); }
/// <summary> /// Criar canal de comunicação Wcf /// </summary> /// <typeparam name="TChannel">Contrato wcf</typeparam> /// <param name="enderecoUrl">Endereço url</param> /// <param name="enderecoPorta">Endereço Porta</param> /// <param name="chaveSeguranca">Chave de segurança (Descriptografada)</param> /// <param name="httpBinding">Objeto NetTcpBinding</param> /// <param name="nomeServico">Nome do serviço</param> /// <param name="duplex">Identifica se é um canal duplex</param> /// <param name="callBack">Eventos de callback para canal duplex</param> /// <returns>Canal criado</returns> public static TChannel CriarNovoCanalWcf <TChannel>( string enderecoUrl, int enderecoPorta, Binding httpBinding, string nomeServico, bool duplex, object callBack) { try { // Controle EndpointAddress endPoint = new EndpointAddress(new Uri(string.Format("net.tcp://{0}:{1}/PointBlankCore/{2}", enderecoUrl, enderecoPorta, nomeServico))); // ChannelFactory ChannelFactory <TChannel> scf = null; switch (duplex) { case true: scf = new DuplexChannelFactory <TChannel>(new InstanceContext(callBack), httpBinding, endPoint); break; default: scf = new ChannelFactory <TChannel>(httpBinding, endPoint); break; } // Criar o canal de comunicação TChannel canalRetorno = scf.CreateChannel(); // Validar conexão try { WcfNetwork.ValidarConexao(canalRetorno, enderecoUrl, enderecoPorta, false); } catch { try { scf.Abort(); } catch { Logger.Error("[WcfNetWork] - Erro ao Abortar o Canal WCF"); } throw; } // Retorno return(canalRetorno); } catch (PointBlankException) { throw; } catch (Exception exp) { // Erro gerado ao acionar o invoke do método de validação if ((exp is TargetInvocationException) && (exp.InnerException != null)) { // Erro de segurança if ((exp.InnerException is MessageSecurityException) && (exp.InnerException.InnerException != null)) { throw new PointBlankException(PointBlankException.GetMessageFull(exp.InnerException.InnerException, true)); } // Identificar se foi erro de time-out if (exp.InnerException is TimeoutException) { throw new PointBlankException("Não foi possível conectar no servidor de aplicação (Erro de Timeout)"); } throw new PointBlankException("Não foi possível conectar no servidor de aplicação.", exp.InnerException); } // Alterar tipo do exception para o padrão throw new PointBlankException("Não foi possível conectar no servidor de aplicação!", exp); } }