Ir para conteúdo
  • Cadastre-se

LibXML2 em aplicações ISAPI


Ver Solução Respondido por Allan Wolski,
  • Este tópico foi criado há 2249 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Bom dia, @Daniel Simoes

Após atualizar os fontes para a rev. 19047 do SVN, comecei a ter problemas com o carregamento da libxml2.dll em uma aplicação ISAPI.

Falha ao assinar o Envio de Evento: Erro ao inicializar a Biblioteca LibXML2

Aparentemente o problema ocorre porque o sistema tenta localizar a DLL no diretório do executável, que neste caso é C:\Windows\System32\inetsrv\w3wp.exe ou C:\Windows\SysWOW64\inetsrv\w3wp.exe, dependendo da versão do Windows.

Tentei configurar a variável global LibXml2Path com o diretório da DLL, mas isso só funcionou em meu ambiente de testes com a DLL em anexo.
Usando a DLL mais recente da pasta ACBr\DLLs\LibXml2 o erro voltava acontecer.

LoadLibrary(PChar(LibXml2Path + Value));

Nesses casos o retorno da função LoadLib é sempre zero.

Só consegui fazer funcionar em meu ambiente de produção revertendo os fontes para a revisão anterior.

Alguma dica de como solucionar este problema?

Obrigado.

libxml2.dll

  • Fundadores
Postado

Sua DLL parece ser diferente da que o ACBr distribui:

http://svn.code.sf.net/p/acbr/code/trunk2/DLLs/LibXml2/x86/

Lembre-se de copiar TODAS as DLLs na pasta indicada acima... e o melhor local, é na mesma pasta do seu .EXE

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Solution
Postado
2 horas atrás, Daniel Simoes disse:

A LibXML2 e o OpenSSL, agora são carregados de forma Dinâmica... o ISAPI não suporta isso ?

Resolvi o problema chamando a função SetDllDirectory, passando o local da DLL da minha aplicação para ser adicionado na lista de diretórios verificados pela função LoadLibrary.
De acordo com a documentação da Microsoft, informar o caminho completo da DLL na chamada da LoadLibrary já seria o suficiente, porém isso não funcionou pra mim.

https://docs.microsoft.com/pt-br/windows/win32/api/libloaderapi/nf-libloaderapi-loadlibrarya
https://docs.microsoft.com/pt-br/windows/win32/api/winbase/nf-winbase-setdlldirectorya

  • Curtir 1
  • Obrigado 1
  • Este tópico foi criado há 2249 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...