none
Reinf - Erro ao Receber Lote de Eventos (RecepcaoLoteReinfClient.ReceberLoteEventos) RRS feed

  • 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

    quinta-feira, 3 de maio de 2018 21:07

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

    quinta-feira, 3 de maio de 2018 22:43
  • 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

    sexta-feira, 4 de maio de 2018 12:35
  • 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

    sexta-feira, 4 de maio de 2018 14:43
  • Obrigado Leandro,

    Na verdade eu  tinha adicionado na solução, um Service References para ler o .xsdl e criar os métodos e estava dando esse erro.

    Eu adicionei um Web References e fiz o mesmo procedimento e funcionou.

    Obrigado!.

    Robson

    segunda-feira, 7 de maio de 2018 11:45
  • 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'

    sábado, 9 de junho de 2018 01:45