Como posso fazer conexões de banco de dados ADO em 'TISAPIApplication` antes de processar solicitações de entrad

TADOConnection não está conseguindo se conectar na seção de inicialização do aplicativo Delphi ISAPI App TISAPIApplication):

@Application é construído com o Delphi XE SPI, executando o Win 7 64 / IIS 7.5 e o WinServer 2008 RS2 - não pode se conectar ao ADO no contexto global de aplicativos ISAPI. (O código de exemplo está usando o MS-SQLServer OLEDB - mas também falhamos ao usar o provedor Sybase ASE.)

O código a seguir falha quandoconn.Open é chamado -TADOConnection.open nunca retorna - o aplicativo ISAPI trava na terra de la-la, sem exceçã

library ISAPIBareBones;

uses
  ActiveX,
  ADODB,

    (...)

var
  conn: TADOConnection;

begin

  CoInitFlags := COINIT_MULTITHREADED;
  Application.Initialize;

  coinitialize(nil);
  conn := TADOConnection.Create(Application);
  conn.ConnectionString := 'Provider=SQLOLEDB.1;xxx';

//Fails here:

  try
    conn.Open;
  except on e:exception do
    logException(e)
  end;


  Application.WebModuleClass := WebModuleClass;
  Application.Run;

end.

O mesmo código em um manipulador de solicitações específico (Delphi webAction) funciona be

Suspeitamos um problema com privilégios de execução no IIS no nível do aplicativo ISAPI. Mas, tanto quanto sabemos, toda a pilha de aplicativos IIS do servidor da web até o diretório virtual específico e a dll ISAPI estão em execução sob as mesmas credenciais e com os mesmos privilégios de execuçã

nquanto isso, minha solução alternativa foi inicializar a infraestrutura do banco de dados a partir de uma chamada de resposta http (um thread ISAPI) e simplesmente verificar se ela foi inicializada em cada chamada subsequente. Isso funciona, mas me sobrecarrega com algumas restrições que eu preferiria não lida

Como posso fazer conexões de banco de dados ADO em umTISAPIApplication instância, antes de manipular solicitações recebida

questionAnswers(2)

yourAnswerToTheQuestion