Ir para conteúdo
  • Cadastre-se

LogProgramador

Membros
  • Total de ítens

    79
  • Registro em

  • Última visita

Posts postados por LogProgramador

  1. 4 horas atrás, antonio.carlos disse:

    Tudo bem, mas precisamos do log gravando no diretório ou não, para verificar o que esta registrando quando ocorre a queda da sua aplicação se é algum método que você chamou ou não.. hora que tivermos o seu log, vamos olhar os fontes do ACBrLib, fazer testes ver se tem alguma coisa que pode estar impedindo de salvar no path.. o que eu não dou uma certeza.. pois aplicação exemplo Windows Forms os logs estão sendo criado no diretório informado.. ACBrLib é a mesma utilizada no exemplo do Windows Forms e ACBr.API.
    E como falei anteriormente, este exemplo ACBr.API é muito simples.. então ele pode não estar salvando no diretório.. umas da TK é sobre ajuste deste exemplo, mas não será feito neste momento.
    Até então não temos relatos de outros colegas que utilizam o ACBrLib que tenha o mesmo problema que o seu, de não gravar o log e queda da aplicação..
     

    Entendo. Mas o que posso fazer se não grava? 

    Eu mencionei que o demo.Api está gerando, mas só gera nesse cenário que você fez, se você rodar ele com IISExpress ele não gera também.
    Provavelmente o que acontece com IISExpress acontece na API no openSuse que é onde cai a aplicação.

    Eu dei um find no servidor opensuse procurando por arquivo de log do acbr e não achou nada:

     image.png.86a3939b29c2d7b24a8b392a440f94dd.png

    Também peguei o demo.Api, removi o boleto e modifiquei a rota de impressão para imprimir um xml fixo numa string.
    Mesmo resultado, não gravou log. Executei o find novamente e não achou nada.

     

  2. 28 minutos atrás, antonio.carlos disse:

    Fiz alguns testes aqui com o exemplo ACBr.API, implementei gravação do log, veja:
    2023-05-10 10-58-42.mkv

    Log esta gravando, mesmo sendo em "Memory", veja se não salvou log em alguma pasta temporária em sua máquina.. 

    Certo, mas perceba que você passa um diretório TempPath para o diretório do log

    image.png.ca7084f5a884bd46afee24fb9aef1196.png

     

    mas o log é gravado na pasta da aplicação

    image.png.24c8820a971b1d3f17815bba78af757b.png

     

    Não obedeceu a configuração.

    O demo aqui gerou também, eu fiz tudo com base nele

  3. Fiz os testes

    Application.StartupPath é biblioteca do windows forms, meu projeto é api.

    Fiz algumas pesquisas de obter o path da aplicação e mas em todos não encontrei o log, e eles retornam praticamente o mesmo path que eu uso.

    image.thumb.png.240ea57c0843f47e68273c20a98ad799.png

    image.thumb.png.f05cd1ec3fec4938cddf29f1abce1f8c.png

    Já tinha feito o teste com caminho absoluto e não tinha dado certo.

    ---

    Estou tentando fazer teste com arquivo ini fisico, mas está dando erro ao criar o acbr.

    'Attempted to read or write protected memory. This is often an indication that other memory is corrupt

    Eu apenas removi o Memory da criação e chamei o acbrnfe.ConfigGravar() após fazer as devidas configurações. Precisa fazer algo a mais?

  4. 17 horas atrás, Daniel Simoes disse:

    Ou configure o log da Lib, para um nível Alto... pois nesse caso, as configurações enviadas, ficam gravadas no Log

    Então, não sei se sou eu que estou usando de forma errada o componente ou é algo nele, mas notei o seguinte:

    • Eu configuro um local para gravar o log, em nenhum cenário ele é gravado nesse local que eu configurei. Isso na minha máquina windows.
      • Há permissão para gravar nesse diretório, é o mesmo diretório de outros logs das aplicações.
    • Executei a aplicação com iisexprees e não gravou log
    • Executei a aplicação com console e gravou o log, no diretório da aplicação e não no diretório configurado
    • No Linux OpenSuse ele é executado em console e não grava o log nem na pasta da aplicação
      • Também tem permissão de escrita no diretório, já fiz um teste solicitado pelo Daniel infocotidiano

    Tentei gerar o arquivo ini com a rotina acbrNfe.ConfigGravar, mas o arquivo não foi gerado, o parãmetro deixei vazio, passei o nome do arquivo e também o path completo e em nenhum caso gerou.

    Segue em anexo o arquivo log gerado numa emissão de nota fiscal com a aplicação sendo executada em console no windows. Lembrando que esse não é o cenário do post, isso ocorre no Linux Open Suse.

    ACBrLibNFE-20230509.log

    Está nível paranóico

    ---

    Para ficar bem alinhado, segue como está toda a configuração e uso do meu acbr

    1. Configuração D.I do component
      image.png.25f02b76b1ab106f3063f56c3e76b5f6.png
       
    2. No serviço de envio o componente é injetado e configurado nessa classe de configuração
      ACBrNFeComponentConfig.cs
       
    3. Serviço de envio
      image.thumb.png.61ca02dad2c515279676c49cbcef1f1f.png
       
    4. A partir daí é apenas tratar o retorno do cstat.

    Em nenhum momento eu uso o .ini, faço alguma chamada de ConfigValor ou nada pareceido, é tudo direto no componente. Menciono isso porque eu vi alguns relatos do discord de pessoas que usam em memory e fazem configurações usando ConfigValor.
    Sobre o Inicializar o finalizar a lib, eu vi que o handle do acbr já faz isso. Bem, É dessa forma que uso.

  5. Olá,

    estou implementando a integração com nota fiscal:

    • Aplicação API C#
    • ACBr em memory
    • Servidor linux OpenSuse

    A nota fiscal é enviada, gera o xml e imprime corretamente.

    O problema acontece alguns minutos (1-3) após esse envio, sem fazer nada na api, sozinho.

    IMG-20230504-WA0046.png

     

    A biblioteca também não grava log, tenho a seguinte configuração:
    image.png

    Essa configuração aponta para: ACBrNFe log path "/home/logsistemas/domynus/test-api/logs":

    • Tenho permissão de escrita nesse diretório conforme um teste sugerido pelo Daniel (Info cotidiano): ls > /home/logsistemas/domynus/test-api/logs/teste.txt
    • É o mesmo diretório de salvamento dos logs da api

     

    Obrigado

    Estou usando em multithread

  6. 15 horas atrás, antonio.carlos disse:

    Erro é característico de falta das dlls de dependência.. tanto windows quanto linux..
    No windows se você abrir o .zip do ACBrLib na pasta dep, vai encontrar as dll de dependência, você precisa copiar elas junto ao ACBrLib na versão que estiver utilizando.. 
    Se estiver usando ACBrLib x86, então as dlls de dependência devem ser x86 também
    No Linux, você precisa se certificar de que os .so's foram instaladas na máquina.. 
     

    Então, quanto a isso, a mesma pasta do ACBRLib que uso no windows, estou usando nesse Linux;

    Ela está na pasta onde está a DLL sendo executada.

    Com a seguinte estrutura dentro da minha pasta bin/debug/net6.0/ACBrLib

    image.png.e91a217deb510ddd1c340be83ee347ac.png

    image.thumb.png.c236f0cbb1b4aedab595b5a2165af323.png

     

    A diferença é que eu apenas coloquei o libacbrnfe64.so no /usr/lib64 e por garantia copiei a libacbrnfe86.so para /usr/lib.
    Você mencionou sobre instalar a .so, seria isso, somente colocar na /usr ou precisa de algo a mais?

     

  7. 16 horas atrás, Juliana Tamizou disse:

    Boa tarde,

    Pelo que foi discutido internamente com o time, nos parece ser algo relacionado ao SO e não ao ACBrLib em sim, já que não temos relatos de problemas semelhantes. O ideal neste caso seria buscar apoio de grupos com conhecimento mais profundo neste SO.

    At.

     

    ok então, obrigado pela atenção pessoal

  8. Num computador linux ubuntu desktop, eu configurei a minha aplicação e testei recebendo esse retorno

    Erro ao inicializar a Biblioteca LibXML2

    Essa aplicação está configurada da mesma forma como no windows, mudando somente as configurações DFe por não ser windows, ficando assim

    acbrNfe.Config.DFe.SSLCryptLib = SSLCryptLib.cryOpenSSL;//cryOpenSSL Somente A1
    acbrNfe.Config.DFe.SSLHttpLib = SSLHttpLib.httpOpenSSL;//httpOpenSSL
    acbrNfe.Config.DFe.SSLXmlSignLib = SSLXmlSignLib.xsLibXml2;

    Eu troquei as outras opções de `acbrNfe.Config.DFe.SSLXmlSignLib` e nenhuma deu certo.

  9. Ainda estou tentando ver como executar esse protocolo.

    Eu percebi aqui em uns testes que os logs que deveriam ser apresentados no console não estavam sendo e com isso vi que a rota não estava nem sendo executada.

    Coloquei alguns logs diferentes na estrutura do ACBr e notei que o problema mencionado cannot open display está ocorrendo na classe ACBrLibHandle precisamente na linha 

    IntPtr pNewSession = LibLoader.LoadLibrary(dllName);

     

    Erro

    image.png.01416af6b752544671094a6192736bbf.png

     

    Código

    image.thumb.png.cc9d990e0e3a1f2541e6ab02d37a4fc6.png

    Foi apresentando o erro, mas não entrou no catch.

    A libacbrnfe64.so se encontro em /usr/lib e lib64

    Estou somente reportanto mesmo, de repente pode ajudar.

  10. Colocando estas configurações o arquivo NFeDFe é gerado no disco assim como no Delphi, mas o retorno do obterXml continua o mesmo, sem o procEventoNFe, é a nota fiscal normal com o protocolo de cancelamento.

    Fazendo o fluxo que acima mencionei e outro para teste, onde o CarregarXml, Consultar e ObterXml ocorrem depois do Cancelar, funcionou também.

    Esse xml NFeDFe ele é algo conforme NT da receita ou é o ACBr que monta apenas?

    Porque caso não seja possível eu obter esse xml sem salvar ele em disco, eu continuo salvando o procEventoNFe e o xml da NFe com o protocolo. O contador irá receber o procEventoNFe e o xml cancelado.

  11. Olá,

    Estou implementando cancelamento de nf em C# numa API.

    • Utilizo o acbr em [memory]
    • Todos os XML são enviados para um object storage, não são armazenados no servidor.
    • Nenhuma configuração para salvar arquivo fica ativa.
    • acbrNfe.Config.AtualizarXMLCancelado até está ativa, mas acredito não fazer nenhuma diferença para esse meu cenário, ou ajuda?

    Após cancelar a NF eu recebo o procEventoNFe na resposta e salvo ele, mas queria salvar o xml atualizado com ele embutido, igual no delphi onde é gerado o NFeDfe.xml.

    No ACBr no delphi nós fazemos os seguintes passos na nossa aplicação desktop

    • Carregamos o xml enviado no acbr
    • Envia o evento
    • Executa o ACBrNFe.Consultar

    Dessa forma o xml NFeDFe é gerado.

    Eu repliquei estas etapas na acbrlib

    • acbrNfe.CarregarXML(passei a string do xml)
    • acbrNfe.Cancelar
    • acbrNfe.Consultar(passei a mesma string do CarregarXML)
    • acbrNfe.ObterXml

    O resultado foi o xml com o protNFe de Cancelamento de NF-e homologado

    <protNFe versao="4.00">
      <infProt>
        <tpAmb>2</tpAmb>
        <verAplic>PR-v4_4_30</verAplic>
        <chNFe>41230413007512000121650010000500791266463397</chNFe>
        <dhRecbto>2023-04-11T14:36:51-03:00</dhRecbto>
        <nProt>141230000091473</nProt>
        <digVal>++pF5Jvn7aA4fdeEvb4jqSlpbCE=</digVal>
        <cStat>101</cStat>
        <xMotivo>Cancelamento de NF-e homologado</xMotivo>
      </infProt>
    </protNFe>

    Tentei também pegar o xml de resposta do cancelamento e carregarEvento junto com as etapas acimas e depois obter o xml, mas mesma assim, veio o xml do mesmo jeito.

    Queria saber se tem como obter o xml mais completo, com todo o procEventoNFe igual o NFeDfe.xml?

    obrigado

    procEventoNFe exemplo.xml 41230413007512000121650010000071741009228359-NFeDFe exemplo.xml

    Outra informação, eu tentei fazer alguns testes com o NFeDemo em C#, mas sem sucesso também

×
×
  • 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.