Wie bekomme ich den ServiceName in einem Windows-Dienst in C#geschrieben?
Wie bekomme ich die service-Namen, ein Programm mithilfe der this.ServiceName
in einem Windows-Dienst in C# geschrieben? Wenn ich versuche diese Fragen für Baugruppen-Referenz ist das aber nicht akzeptieren, dass alles:
string path = this.ServiceName + ".config";
aber immer Fehler.
- Welche Fehler haben Sie?
- Können Sie uns sagen, was der genaue Fehler sind Sie immer? Wenn der compiler gibt einen Fehler, ist es hilfreich, poste es einfach, wie es scheint. Das gibt uns eine Menge mehr Informationen als nur "seine" erste Fehler".
- Was macht Ihr code haben mit der Frage zu tun? Und welche Fehler sind Sie immer?
- Offensichtlich ist der code, wie er versucht, um den Namen des Dienstes. Das Teil ist klar genug. Das problem ist, dass er sagt uns nicht, was der Fehler ist.
- sorry mein Fehler--- " - Service.monServ' enthält keine definition für 'ServiceName' und keine Erweiterungsmethode 'ServiceName' die Annahme ein erstes argument vom Typ 'Service.monServ' gefunden werden konnte (fehlt eine using-Direktive oder ein Assemblyverweis?)
- Hat deine Klasse erbt "ServiceBase" ?
typeof(this)
ist unsinnig.- in der main Funktion sein, wie dies ServiceBase[] ServicesToRun; ServicesToRun = new ServiceBase[] { new Service1() }; ServiceBase.Run(ServicesToRun);
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre service-Bedürfnisse zu Erben
ServiceBase
ausSystem.ServiceProcess.dll
.Wenn Sie haben, dass Sie werde in der Lage sein, um Zugriff
this.ServiceName
Eigenschaft.Beispiel:
Wenn Sie darauf zugreifen möchten, die aus Main() (Program-Klasse), dann können Sie etwas wie das hier tun:
Zu finden .config-Datei für Ihren Dienst, tun nicht Verwendung der service-name. Das ist nicht, wie die CLR arbeitet, wählt er die .config-Datei auf die EXE-Namen. Update:
Zugriff auf die Konfigurations-Datei benötigen Sie den Namen der Anwendung, nicht den Namen des service (wenn Sie standard .Net-Anwendung Konfigurationsdateien).
Um die ausführbare Datei der Anwendung System verwenden.AppDomain.CurrentDomain.FriendlyName