Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 2613 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Ola!

Estou tendo problemas em alguns clientes, ocorre access violation ao assinar.

Crio o componente manualmente desta forma:

  AACBrMDFe := TACBrMDFe.Create(Application);
  AACBrMDFe.Configuracoes.Geral.SSLLib              := libWinCrypt;
  AACBrMDFe.Configuracoes.Geral.Salvar              := False; //Não salvar XML sem valor fiscal
  AACBrMDFe.Configuracoes.Arquivos.PathSchemas      := ExtractFilePath(Application.ExeName) + 'Schemas\MDFe\';
  AACBrMDFe.Configuracoes.Arquivos.PathSalvar       := AConexao.LerParametroString('NFE_CAMINHO_XML', True);
  AACBrMDFe.Configuracoes.Arquivos.SepararPorCNPJ   := True;
  AACBrMDFe.Configuracoes.Arquivos.SepararPorMes    := True;
  AACBrMDFe.Configuracoes.Arquivos.SepararPorModelo := True;
  AACBrMDFe.Configuracoes.Arquivos.Salvar           := True;
  AACBrMDFe.Configuracoes.Arquivos.EmissaoPathMDFe  := True; //se baseia pela data de emissão para montar o path
  AACBrMDFe.Configuracoes.WebServices.Visualizar    := False;
  AACBrMDFe.Configuracoes.WebServices.Salvar        := False;
  AACBrMDFe.Configuracoes.WebServices.UF            := AFilial.xUF;
  AACBrMDFe.Configuracoes.Certificados.NumeroSerie  := AFilial.CertSerie;
  AACBrMDFe.Configuracoes.Geral.VersaoDF            := ve300;
  AACBrMDFe.EventoMDFe.Versao                       := '3.00';

  AACBrMDFe.SSL.CarregarCertificado;
  if AACBrMDFe.SSL.DadosCertificado.Tipo = tpcA3 then //A3
  begin
    AACBrMDFe.Configuracoes.Geral.SSLXmlSignLib := xsMsXml;
    AACBrMDFe.SSL.SSLXmlSignLib                 := xsMsXml;
  end
  else //A1
  begin
    AACBrMDFe.Configuracoes.Geral.SSLXmlSignLib := xsXmlSec;
    AACBrMDFe.SSL.SSLXmlSignLib                 := xsXmlSec;
  end;

  //Configura sequencia para montar o path (cnpj\anomes\modelo)
  AACBrMDFe.Configuracoes.Arquivos.OrdenacaoPath.Clear;

  with AACBrMDFe.Configuracoes.Arquivos.OrdenacaoPath.Add do
    Item := opCNPJ;

  with AACBrMDFe.Configuracoes.Arquivos.OrdenacaoPath.Add do
    Item := opData;

  with AACBrMDFe.Configuracoes.Arquivos.OrdenacaoPath.Add do
    Item := opModelo;

  if AtpAmb = 1 then
    AACBrMDFe.Configuracoes.WebServices.Ambiente := taProducao
  else
    AACBrMDFe.Configuracoes.Webservices.Ambiente := taHomologacao;

  //Mail
  if (not Assigned(AACBrMDFe.MAIL)) then
    AACBrMDFe.MAIL := TACBrMail.Create(Application);

  AACBrMDFe.MAIL.From                := AFilial.Mail_Endereco;
  AACBrMDFe.MAIL.FromName            := AFilial.Mail_NomeEmpresa;
  AACBrMDFe.MAIL.Host                := AFilial.Mail_Servidor;
  AACBrMDFe.MAIL.Username            := AFilial.Mail_Endereco;
  AACBrMDFe.MAIL.Password            := AFilial.Mail_Senha;
  AACBrMDFe.MAIL.Port                := IntToStr(AFilial.Mail_Porta);
  AACBrMDFe.MAIL.IsHTML              := True;
  AACBrMDFe.MAIL.SetSSL              := AFilial.Mail_SSL;
  AACBrMDFe.MAIL.ReadingConfirmation := False;
  AACBrMDFe.MAIL.AddReplyTo(AFilial.Mail_ResponderPara);

Alimento o componente, e quando chamo o assinar:

  try
    ACBrMDFe.Manifestos.Assinar;
  except
    on e:exception do
      raise Exception.Create('Erro ao assinar. Erro: ' + e.Message);
  end;

recebo o access violation, na verdade eu não recebo, por que aqui no meu pc funciona, mas em alguns clientes não, alguns inclusive usam o mesmo windows que tenho aqui (Win 10 Pro).

Alguma idéia ? Não consigo fazer debug por que não consigo simular, estou desde ontem batendo cabeça e nada, copiei/registrei as DLLs novamente, instalei cadeia de certificados e nada.

 

-=Ma®©oS=-

  • Este tópico foi criado há 2613 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.