Ich habe eine ausführbare Windows-Dienstdatei, von der ich weiß, dass sie in .NET geschrieben ist und die ich unter einem anderen Dienstnamen installieren muss, um einen Konflikt zu vermeiden. Die Installation bietet ohnehin keine Möglichkeit, einen Dienstnamen anzugeben. Wenn ich nur Zugriff auf die Binärdatei habe, kann der Dienstname bei der Installation mit installutil trotzdem überschrieben werden?
.net
windows-services
Nathan
quelle
quelle
Es ist nicht wahr, dass Sie mit InstallUtil den Dienstnamen nicht konfigurieren können. Ich mache es die ganze Zeit so
InstallUtil.exe /servicename="<service name>" "<path to service exe>"
quelle
System.ComponentModel.Win32Exception: The specified service already exists
. Ich habe versucht, zwei Instanzen desselben Dienstes zu installieren und sie unterschiedlich zu benennen. Verwenden Sie sc erstellen Methoden in den folgenden Antworten angegebenFügen Sie eine Methode hinzu, um den CustomService-Namen abzurufen
private void RetrieveServiceName() { var serviceName = Context.Parameters["servicename"]; if (!string.IsNullOrEmpty(serviceName)) { this.SomeService.ServiceName = serviceName; this.SomeService.DisplayName = serviceName; } }
Rufen Sie bei der Installation und Deinstallation auf
public override void Install(System.Collections.IDictionary stateSaver) { RetrieveServiceName(); base.Install(stateSaver); } public override void Uninstall(System.Collections.IDictionary savedState) { RetrieveServiceName(); base.Uninstall(savedState); }
installutil /servicename=”My Service [SysTest]” d:\pathToMyService\Service.exe
Quelle
quelle
Das hat genau bei mir funktioniert!
Ich hoffe jemand kann das nutzen.
quelle
Versuchen Sie, Ihren Dienst mit sc.exe zu installieren. Eine schnelle Suche ergibt viele Unterlagen. Mit diesem Tool ist es einfach, vorhandene Dienste zu ändern und / oder neue hinzuzufügen - einschließlich Namen.
Bearbeiten: Ich installiere meine .NET-Dienste mit diesem Tool.
quelle