Hallo,
ich habe das Problem, das ein von mir unter Delphi 6 erstellter Dienst zweimal auf dem gleichen Rechner (Windows 2003) gestartet werden soll. Einmal läuft die Anwendung in der echten Produktionsumgebung und ein zweitesmal soll der Dienst als Testinstanz laufen. Ich dachte, dass man mit Hilfe des Servicenamens oder Servicedisplaynamens, in der BeforeInstall-Routine aus einer Ini-Datei gelesen und damit für die beiden Programminstanzen unterschiedlich gemacht, das Problem leicht lösen könnte.
Aber das war wohl nichts. Sobald ich die Eigenschaft 'name' des Dienstes in einen anderen Namen ändere als den, der im Objektinspektor steht, geht nichts mehr. Der Dienst läßt sich zwar installieren, aber weder starten noch wieder deinstallieren. Die Änderung des displaynamens alleine bringt auch nichts, da es wohl wirklich nur der angezeigte Name ist. Die Eigenschaft servicestartname bringt's auch nicht, da da ja die Domäne und der User angegeben werden.
Ich könnte natürlich Teile des Quellcodes doppeln, also insbesondere die
Unit, in der der von TService abgeleitete Dienst deklariert ist. Den Weg find ich nicht besonders schön, da in der Testinstanz normalerweise Programmänderungen getestet und abgenommen werden, und dann die gleiche Exe-Datei in der Produktionsumgebung aktiviert wird.
Gibts hier vielleicht jemanden, der so ein Problem schon mal hatte und mir einen guten Tipp geben kann.
Viele Grüße
Klaus