Indy "No se pudo cargar la biblioteca SSL" Delphi XE2 IW14
Sé que esta pregunta ya se ha hecho antes, pero ninguna de las respuestas parece ser apropiada para esta situación.
Estoy usando un componente TIdHttp con un controlador SSL. Mi código es el siguiente:
idHTTPClient := TIdHTTP.Create(nil);
ioHnd := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
ioHnd.DefaultPort := iSSL_PORT;
ioHnd.SSLOptions.Mode := sslmClient;
idHTTPClient.IOHandler := ioHnd;
idHTTPClient.Request.AcceptEncoding := 'gzip,deflate,identity';
idHTTPClient.Request.BasicAuthentication := False;
try
idHTTPClient.Post(FFQDN, stmRequest, stmResponse);
except
on E:Exception do
begin
if IdSSLOpenSSLHeaders.WhichFailedToLoad <> '' then
begin
AddMsg('Failed to load file ' + IdSSLOpenSSLHeaders.WhichFailedToLoad + '. ' + E.Message);
end;
end;
end;
Hay tres versiones de los archivos ssleay32 y libeay32.dll en la máquina. Un conjunto está en la misma carpeta que mi ejecutable (V1.0.0.5). Un conjunto está en la carpeta bin Apache (V0.9.8.20) y un conjunto está en C: \ Windows \ SysWOW64 (sin versión pero con fecha 2003).
Cuando se inicia la aplicación, funciona bien. Pero después de unos días, la llamada Post comienza a fallar con "No se pudo cargar la biblioteca SSL". Los archivos que no se pueden cargar son:
SSL_SESSION_get_id, SSL_COMP_get_compression_methods
Una vez que este problema comienza a suceder, no desaparecerá hasta que se reinicie la aplicación. Luego vuelve a funcionar bien durante unos días más.
Me parece que, por alguna razón, los dlls que se están cargando cambian después de unos días. ¿Cómo podría suceder esto y qué podría hacer para garantizar que se carguen los archivos correctos cada vez?