Ermöglicht Windows-Dienst konfiguriert werden
Ich habe einen Windows-Dienst, den ich erschaffe und ich Frage mich, welche Optionen verfügbar sind, um für mich damit Entwickler Dienste zu konfigurieren.
Der Dienst ist Teil eines über alle größeren open-source-Projekt und daher der Dienst wird installiert werden, auf vielen verschiedenen Maschinen.
Normal würde ich einen web - /app.config für dieses, aber ich bin mir nicht sicher, ob dies möglich ist.
Daher bin ich auf der Suche, um so, wie andere, in diesem Fall behandeln.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie tun, als Sie erwarten. Sie verwenden die app.config, die umbenannt werden
<exeName>.config
wenn das Projekt gebaut ist und dann<exeName>.config
gelesen werden, indem Sie den Dienst namens<exeName>
.Einstellungen angewendet werden, die in einer geschichteten Art und Weise und kann von anderen Konfigurations-Dateien auf der Maschine, wie die Maschine.config. Sie können Lesen Sie über wie-Konfiguration behandelt wird auf der MSDN-Website
BEARBEITEN
Antwort zu Kommentar: Ein Dienst liest nur die config, wenn es beginnt (für perf Gründen). Wenn Sie möchten, laden Sie die config-Datei zu einem späteren Zeitpunkt, die Sie benötigen, zu behandeln, die sich, denke ich.
Dem Lesen der letzten änderung Datum/Zeit des config-Datei, um festzustellen, ob die Datei geändert wurde, oder setup eine file system watcher und dann sagen Sie den configuration manager neu zu laden, die Sektion wieder das nächste mal ist es zu Lesen, durch den Aufruf
ConfigurationManager.RefreshSection("appSettings")
und diesen Abschnitt neu geladen von der Festplatte, wenn Sie weiter darauf zugreifen. Finden Sie die ConfigurationManager MSDN docsKönnen Sie nur verwenden .config-Datei mit dem gleichen Namen wie die exe-Datei, die der service.
Wenn Ihr Dienst ausgeführt wird MyService.exe es config-Datei wäre MyService.exe.config.
In Visual Studio fügen Sie einfach die Anwendung-Konfigurations-Datei. Dies wird fügen Sie eine app.config-Datei für das Projekt.
Können Sie dann Zugriff auf Dinge wie AppSettings und ConnectionStrings verwenden Sie die ConfigurationManager-Klasse, genau wie du mit ASP.Net Anwendungen.