Hallo,
Ich versuche, eine IActiveScript-Instanz in einem NT-Dienst während des Starts zu erzeugen. Ich habe dafür die TlvkActiveScript-Komponente verwendet.
Das ganze klappt auch problemlos, allerdings nur, solange ich den Dienst manuell starte. Sobald der Dienst beim Hochfahren automatisch gestartet werden soll, hängt er.
Mein Code sieht folgendermaßen aus
<PRE>
procedure TService1.ServiceStart(Sender: TService;
var Started: Boolean);
begin
try
try
CoInitialize(nil);
Script := TlvkActiveScript.Create(0);
Script.Language := FLanguage;
Script.ScriptCode.Text := FScriptCode;
Script.Compile;
...
finally
CoUnInitialize;
end;
except
on E: Exception do
begin
HandleException(E);
end;
end;
end;
</PRE>
Hängen tut das ganze an der Stelle "Script.Compile" und dort wiederum beim Aufruf von "CoCreateInstance".
Abhängigkeiten von anderen Diensten sollten nicht bestehen, so dass ich mich nun frage, ob es beim Zusammenspiel von Diensten und COM irgendetwas besonderes zu beachten gibt oder ob ich evtl. sonst noch etwas wichiges übersehen habe.
Uwe
Ich versuche, eine IActiveScript-Instanz in einem NT-Dienst während des Starts zu erzeugen. Ich habe dafür die TlvkActiveScript-Komponente verwendet.
Das ganze klappt auch problemlos, allerdings nur, solange ich den Dienst manuell starte. Sobald der Dienst beim Hochfahren automatisch gestartet werden soll, hängt er.
Mein Code sieht folgendermaßen aus
<PRE>
procedure TService1.ServiceStart(Sender: TService;
var Started: Boolean);
begin
try
try
CoInitialize(nil);
Script := TlvkActiveScript.Create(0);
Script.Language := FLanguage;
Script.ScriptCode.Text := FScriptCode;
Script.Compile;
...
finally
CoUnInitialize;
end;
except
on E: Exception do
begin
HandleException(E);
end;
end;
end;
</PRE>
Hängen tut das ganze an der Stelle "Script.Compile" und dort wiederum beim Aufruf von "CoCreateInstance".
Abhängigkeiten von anderen Diensten sollten nicht bestehen, so dass ich mich nun frage, ob es beim Zusammenspiel von Diensten und COM irgendetwas besonderes zu beachten gibt oder ob ich evtl. sonst noch etwas wichiges übersehen habe.
Uwe