Ir para conteúdo
  • Cadastre-se

Gilberto Evangelista

Membros
  • Total de ítens

    14
  • Registro em

  • Última visita

Posts postados por Gilberto Evangelista

  1. 22 horas atrás, Rafael Dias disse:

    Rapaz ai eu não sei teria que tentar simular algo aqui pois é erro do gerador de relatorio

    Boa tarde, Rafael!

    Tudo bem?

    Criei uma API simples que dá um erro no momento que você faz duas requisições ao mesmo tempo para que consiga provocar aí. O fonte encontra-se em anexo.

    O arquivo "ErroAoClicarDuasVezes.png" exibe o erro que aparece na tela quando chamo a requisição duas vezes. Note que na imagem está mostrando um erro na preparação do relatório.

    O arquivo "ACBrLibBoleto-20200926.log" mostra o erro que aparece no log vindo de dentro da API. 

    A requição está com dados fixos de geração do boleto, ou seja, são exatamente iguais os boletos a serem gerados.

    Criei os objetos todos dentro da controller para não ter dúvida sobre o compartilhamento de objetos, ou seja, cada requisição cria seu objeto de ACBrBoleto.

    Para provocar o erro, estou executando a API, abrindo o browser, digitando o endereço https://localhost:5001/boletos . Dou enter, um clique no endereço e outro enter rapidão. É apresentado o erro de AV no log.

    Apesar da mensagem de erro mudar desde o início do post o problema sempre foi gerar o PDF em duas requisições simultâneas. Acredito que todos os erros apresentados até agora parece ser na geração do relatório.

    Qualquer dúvida estou a disposição.

    Boleto.7z

  2. 9 minutos atrás, Rafael Dias disse:

    Agora o erro é que a fonte usada na impressão não existe na maquina.

    Quando mando imprimi o mesmo boleto, sendo uma única requisição, ele imprime corretamente. Utilizando exatamente o mesmo boleto. Com as mesmas configurações. Exatamente tudo igual. Não dá erro nenhum de fonte.
    Outro ponto, onde que altero essa fonte? Eu não identifiquei onde estou passando esse tipo de configuração.
    O arquivo ACBrLib.ini está anexado acima
    Segue o arquivo log comprovando que com uma única requisição funciona corretamente sem erro de fonte.

    ACBrLibBoleto-20200925 (1).log

  3. 10 minutos atrás, Rafael Dias disse:

    Me responde uma pergunta o tipo de saida que esta usando é qual, infelizmente não ta aparecendo no log será corrigido na proxima versão ?

    A saída que estou utilizando é o PDF.

    Porém se eu deixo com a saída padrão, não dá o erro. O erro só ocorre quando tem que gerar chamando mais de uma requisição com PDF.

    Gerando o mesmo boleto em PDF com uma única requisição funciona corretamente.

  4. 13 horas atrás, Rafael Dias disse:

    A não ser que esteja reaproveitando a instancia da classe não deveria haver concorrência, se você esta aproveitando da instancia com certeza absoluta vai ter concorrência.

    O que mudou da lib ST para MT é que agora as instancia da classe são independentes diferentes de antes, sempre era a mesma instancia.

    Bom dia, Rafael.

    Obrigado pela resposta.

    São instâncias diferentes. Cada requisição cria um objeto ACBrBoleto(Classe de alto nível do projeto) diferentes.

    Código utilizado para criação: _acbrBoleto = new ACBrBoleto(caminhoACBr);

    E mesmo assim, quando chamo as duas requisições ao mesmo tempo está estourando o erro no log.

    Lembrando que só dá o erro quando existe chamadas simultâneas que geram PDF.

    Quando é uma requisição por vez, funciona perfeitamente.

    Vocês tem algum relato de alguém que utilizou a MT, em um ambiente de API, sem utilizar o lock, funcionando sem problemas em chamadas simultâneas? Pois já tentei de tudo aqui para fazer funcionar sem voltar erro de dentro da DLL(veja o log) e não estou conseguindo.

    Muito obrigado.

  5. Boa noite!

    Estou enfrentando um problema de concorrência com a biblioteca ACBrBoleto64.dll MT.

    Desenvolvi uma API com Asp.Net Core WebAPI utilizando a nova dll MT do ACBrLib. Segui todos os exemplos que estão na Demo. 

    Porém quando faço duas requisições ao mesmo tempo está voltando o erro "String list does not allow duplicates". Segue arquivo de log (ACBrLibBoleto-20200924.log) com o erro voltando de dentro da DLL.

    O Comando Boleto_IncluirTitulos está sendo chamado passando para gerar o PDF.

    Esse erro só acontece quando é chamado duas requisições ao mesmo tempo. 

    Segue também o arquivo ACBrLib.ini utilizado para configurar a DLL.

    Alguém já passou por esse problema? 

    Eu posso seguir o que está no Demo para utilizar a dll MT em um ambiente de concorrência ou tenho que alterar alguma coisa para que funcione em um ambiente de concorrência?

    Muito obrigado.

    ACBrLibBoleto-20200924.log ACBrLib.ini

  6. Bom dia, pessoal!

    Obrigado pelas respostas!

    Daniel Simões,

    Alterei as propriedades e funcionou corretamente. Acredito que os controles GUIs precisam executar na thread principal, por isso do problema, não é?

    Rafael Dias,

    Como estou desenvolvendo uma API, tudo é executado em várias threads dentro do IIS de forma assícrona. A DLL pode ser executada em várias threads né? O problema é por causa dos controles GUIs que estavam marcados né? Só confirmando mesmo, pois senão fica inviável fazer um projeto de uma API utilizando as DLLs. Tem alguma dica no C# para que não dê nenhum tipo de problema de concorrência utilizando as DLLs?

    Muito obrigado.

    • Curtir 1
  7. Boa noite!

    Estou contruindo uma api com Asp Net Core(C#). Ela está sendo executada no IIS. Todos os métodos foram baseados na demo do ACBrLib para C#.  

    Todos os métodos funcionam corretamente menos a geração de PDF está voltando o problema abaixo:

    iisexpress
    RLNFe: Erro durante a preparação do relatório
    EThread(CheckSynchronize called from non-main thread "$4320")

    Carrego primeiro os parâmetros do objeto ACBrNFe, depois executo os comandos abaixo:

    ACBrNFe.LimparLista();
    ACBrNFe.CarregarXML(nomeArquivoXml);
    ACBrNFe.ImprimirPDF();

    No comando ImprimirPDF apresenta o erro acima.

    Segue arquivo de configuração em anexo.

    Alguém já passou por isso? Existe outra forma de gerar o pdf sem ser por essa função? 

    Lembrando que as outras funções estão funcionando corretamente, somente essa que apresenta esse problema.

    Muito obrigado.

    ACBrLib.ini

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