Ich steh grad ein bissi auf dem Schlauch. Da ich mich zum ersten mal mit dem Thema Dienstanwendung befasse hänge ich an ein paar Problemen. Ich habe über den Assistenten eine neue leere Dienstanwendung erstellt, einen DisplayName und einen ServiceStartName vergeben sowie im OnExecute den MainLoop erstellt:
while not Terminated do ServiceThread.ProcessRequests(FALSE);
. Dann habe ich in der Unit1 den
Indy Telnet Server plaziert und ein paar Commandhandler vergeben. Wenn ich den Dienst jetzt aus der
IDE heraus starte funktioniert er eigentlich so wie ich mir das vorgestellt habe, wird jedoch nach etwa 5 Sekunden hart beendet, die laufenden Telnet-Session gekappt und
Indy quittiert das mit einer
Exception. Die Eigenschaft WaitHint habe ich schon mal von 5000 auf 0 gesetzt aber das hat an dem 5-Sekunden-Timeout nichts geändert.
Wenn ich den Dienst aus der Befehlszeile heraus mit /install aufrufe, dann bekomme ich die Fehlermeldung "Service 'Testdienst' konnte nicht installiert werden; Fehler: '
Win32-Fehler. Code: 1057. Der Kontenname ist unzulässig oder nicht vorhanden, oder das Kennwort für den angegebenen Kontennamen ist ungültig"
Ich arbeite in einer W2003Server-Domäne mit Admin-Rechten.
EDIT: Das letztere Problem mit der Installation habe ich gelöst bekommen: Wenn ich ServiceStartName leer lasse dann kann ich den Dienst problemlos installieren. Es ist halt nur ein bisschen umständlich bei der Entwicklung, jedesmal den registrierten Dienst zu beenden, dann zu kompilieren und den Dienst neu zu starten. Kann man das irgendwie beeinflussen daß die Dienstanwendung innerhalb der
IDE so lang läuft bis ich sie händisch beende?