Also anscheinend wird beim erstmaligen verbinden eine Instanz von TWebModule angelegt, danach (vorerst) keine weitere. Ich habe einen Testclient gebaut welcher eine Anfrage schickt, auf ein Response wartet und wenn ein Response ankam gleich den nächsten Request abschickt. Dann rutschte er zu Beginn zwei mal in die WebModuleCreate und anschließend lief alles im Alleingang (hatte beim Debugen nur einen Haltepunkt in der Create und in der Destroy), Destroy wurde auch erst bei Beendigung des kompletten Services ausgeführt.
Irgendwas ist da mächtig Faul
Da ist nix faul. Es wird ein Pool von WebModule-Instanzen erstellt: Bei mehreren
gleichzeitigen Anfragen, werden neue Instanzen erstellt, die bleiben dann auch erhalten und jede neue Anfrage wird an eine dieser Instanzen geschickt.
CoInitialize(nil) und CoUnitialize war auch mein nächster Tipp im Create, das funktioniert auch, komischerweise aber nur bis zu einem bestimmten Punkt, ab einer gewissen Anzahl von Anfragen wirft er mir plötzlich trotzdem eine
Exception das CoInitialize nicht aufgerufen wurde.
CoInitialize sollte nur 1 mal zu Beginn aufgerufen werden. Daher nicht im Create des Webmodule aufrufen, da das ja mehrfach geschehen kann.