Indy “Não foi possível carregar a biblioteca SSL” Delphi XE2 IW14

Sei que essa pergunta já foi feita antes, mas nenhuma das respostas parece ser apropriada para essa situação.

Estou usando um componente TIdHttp com um manipulador SSL. Meu código é o seguinte:

  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;

Existem três versões dos arquivos ssleay32 e libeay32.dll na máquina. Um conjunto está na mesma pasta que o meu executável (V1.0.0.5). Um conjunto está na pasta bin Apache (V0.9.8.20) e um conjunto está em C: \ Windows \ SysWOW64 (nenhuma versão, mas datada de 2003).

Quando o aplicativo é iniciado, ele funciona bem. Mas, após alguns dias, a chamada de postagem começa a falhar com "Não foi possível carregar a biblioteca SSL". Os arquivos que falham ao carregar são:

SSL_SESSION_get_id, SSL_COMP_get_compression_methods

Quando esse problema começar, ele não desaparecerá até que o aplicativo seja reiniciado. Então, ele funciona bem novamente por mais alguns dias.

Parece-me que, por algum motivo, as dlls carregadas mudam depois de alguns dias. Como isso aconteceu e o que devo fazer para garantir que os arquivos corretos sejam carregados sempre?

questionAnswers(1)

yourAnswerToTheQuestion