Hmm..
CoInitialize(nil) und CoUninitialize dürfen nur einmalig aufgerufen werden. Nicht pro Verbindung und nicht pro Client und nicht pro Anfrage, sondern insgesamt nur einmal.
Nicht ganz richtig..
Lt.:
https://msdn.microsoft.com/de-de/lib...(v=vs.85).aspx
MUSS CoInitialize(nil) und CoUninitialize JE Thread aufgerufen werden wenn
COM verwendet werden soll, was bei
ADO nun mal so ist.
Wenn jede Anfrage über das WebModule in einem eigenen Sub-Thread ausgeführt wird, muss auch in der Execute des Threads CoInitialize(nil) und CoUninitialize aufgerufen werden.
Auch kannst Du mehrfach CoInitialize aufrufen, musst nur jeweils auch ein CoUninitialize dazu machen.
Ob es bei einer
ISAPI-
Dll anders ist, oder ob diese
DLL immer nur aus einem Thread (MainThread) aufgerufen wird.. k.A.
Jedoch deuten die Fehlermeldungen von seinem
ADO-Aufruf darauf hin, dass diese in einem eigenen Thread aufgerufen werden und somit expliziert CoInitialize brauchen.
Warscheinlich sind die ADOs eben nicht ThreadSave und somit eventuell von CoInitFlags := COINIT_MULTITHREADED ausgenommen..