Inquiridor
Reinf - Erro ao Receber Lote de Eventos (RecepcaoLoteReinfClient.ReceberLoteEventos)

Pergunta
-
Boa tarde.
Estou criando a rotina para enviar o EFD Reinf. Porém ao consumir o método RecepcaoLoteReinfClient.ReceberLoteEventos, esta retornando o erro: "A solicitação HTTP está proibida com o esquema de autenticação de cliente 'Anonymous'.".
Alguém sabe como resolver?
Obrigado
Robson
Todas as Respostas
-
Olá, como não estamos vendo o seu código acredito que a mensagem de erro queira indicar que para realizar a chamada é necessário algum valor de autenticação como por token, OAuth2, Bearer, etc....
Veja se na documentação não tem nada dizendo a respeito disso, ou se quiser coloque o seu código aqui para podermos ajuda-lo.Abs!
Leandro de Agostini MCTS - Web Application, Framework 4
-
Segue método que uso para enviar o XML.
public static string CallServico(string serialCertificado, string xml, string servico)
{
string retService = "";
try
{
using (RecepcaoLoteReinfClient vService = new RecepcaoLoteReinfClient())
{
switch (servico)
{
case "ReceberLoteEventos":
ReceberLoteEventosRequest loteEventosRequest = new ReceberLoteEventosRequest();
certificado certifica = new certificado();
vService.ClientCredentials.ClientCertificate.Certificate = certifica.BuscaNroSerie(serialCertificado);
System.Xml.Linq.XElement resp = vService.ReceberLoteEventos(System.Xml.Linq.XElement.Parse(xml));
break;
default:
throw new Exception("Erro na chamada ao serviço. o Parametro -Serv esta incorreto");
break;
}
}
}
catch (Exception ex)
{
throw new ApplicationException(string.Format("Endpoint: {0}", endPoint), ex);
}
return retService;
}
A classe RecepcaoLoteReinfClient foi criada pelo XSD do ECF Reinf
-
Olá Robson, quando você "debuga" o código o erro acontece nessa linha:
vService.ClientCredentials.ClientCertificate.Certificate = certifica.BuscaNroSerie(serialCertificado);
Se for nesta linha pelo que eu estava lendo na documentação, o erro pode ser devido ao tipo de certificado, ou na forma como está sendo enviado, agora se o erro acontece nesta linha:
System.Xml.Linq.XElement resp = vService.ReceberLoteEventos(System.Xml.Linq.XElement.Parse(xml));
O erro deve ser de estrutura do XML, alguma propriedade pode não estar sendo preenchida corretamamente.Abs!
Leandro de Agostini MCTS - Web Application, Framework 4
-
-
Caros Leandro e Robson!
Estou passando por esse problema. Vocês podem me ajudar?
1. Faço a seleção do certificado.
X509Certificate2 cert = SelecionarCertificadoAssinaturaArquivo();
2. Criar um objeto RecepcaoLoteReinfClient
RecepcaoLoteReinfClient reinfLote = new RecepcaoLoteReinfClient();
3. Passo o certificado para o objeto criado no item 2 acima
reinfLote.ClientCredentials.ClientCertificate.Certificate = cert;
4. jogo o xml para o objeto XElement
XElement xElement = XElement.Load(nodeReader);
5. Chamar o metodo ReceberLoteEventos
XElement xOut = reinfLote.ReceberLoteEventos(xElement);
6. Recebo o erro
ERRO A solicitação HTTP está proibida com o esquema de autenticação de cliente 'Anonymous'