Müssen Sie einen Windows-Dienst neu starten, wenn Sie die app.config ändern?Müssen Sie einen Windows-Dienst neu starten, wenn Sie die Datei app.config ändern?
Antwort
NET Framework wird die app.config einmal gelesen, und nie wieder die app.config berühren. Aus diesem Grund müssen Sie die Anwendung neu starten, um die Änderung zu übernehmen.
Warum erkennt .Net Framework nicht, dass app.config geändert wurde, und alle Konfigurationsdaten aktualisieren?
Der Grund ist einfach, dies ist im Allgemeinen nicht möglich.
Lassen Sie uns den Einsatz Raymonds hier „imagine dies geschehen könnte“ Logik ...
Ja.
Vermutlich meinst du die Datei appname.exe.config?
Nein, haben Sie nicht haben zu. Wenn Sie Änderungen in app.config
wirksam werden möchten, müssen Sie sie möglicherweise neu starten. Oder Sie möchten einen benutzerdefinierten Konfigurationsdatei-Überwachungsmechanismus implementieren, der die Einstellungen der Dienste im laufenden Betrieb ändert.
"Wenn Sie möchten, dass Änderungen in app.config wirksam werden" - ich denke, das ist implizit die Frage! –
Großartig, nur wenn ich keine Gummihühner mehr habe. –
@Gamecat: freie Reichweite? –
Dies geht weit aus dem Rahmen der Frage, aber ich würde vermuten, dass Sie nur in einigen "anwendungsspezifischen" Abschnitt (appSettings, etc.) Änderungen vornehmen möchten.
Sie sind besser dran, Ihren eigenen Config-Abschnitt-Handler zu schreiben, der seine eigene Konfigurationsdatei überwacht - den Ansatz nlog uses. Überprüfen Sie den Abschnitt "Automatische Rekonfiguration".
Normalerweise ja. Sie könnten jedoch einen Windows-Dienst schreiben, der einen Dateimonitor in die Konfigurationsdatei einfügt und eine Änderung erkennt und sie ohne Neustart anwenden würde.
Zum Beispiel bietet das Log4Net Logging Framework einen solchen Mechanismus für seine Konfigurationsdatei.
Ich habe das schon einmal benutzt. Im Wesentlichen wird der angegebene Abschnitt neu geladen, bevor der Wert abgerufen wird. Möglicherweise weniger effizient als ein Config-File-Watcher, der bei Bedarf aktualisiert wird, aber sicher effektiv verwendet wird.
ConfigurationManager.RefreshSection("appSettings")
sValue = ConfigurationManager.AppSettings(name)
Das ist ein großartiger Fund! – d219
- 1. Ändern Sie app.config zur Installationszeit
- 2. Starten Sie uwsgi nur neu, wenn die Konfiguration gültig ist
- 3. Starten Sie dieses Skript neu
- 4. So starten Sie Postgresql neu
- 5. Ändern Sie Verbindungszeichenfolge und laden Sie app.config zur Laufzeit
- 6. Ändern Sie den Wert in app.config-Datei dynamisch
- 7. Starten Sie AlarmManager, wenn das Gerät neu gestartet wird
- 8. Generieren Sie einen Java-Thread-Dump, ohne neu zu starten.
- 9. Starten Sie den Windows-Dienst neu, wenn er fehlerhaft ist
- 10. Sie müssen NUR wählen, wenn Sie einen Standort besuchen
- 11. Vermeiden Sie zu blinken, wenn Sie eine .cmd-Datei starten
- 12. Die Anwendung kann die Datei app.config nicht finden, wenn sie bei Windows Startup ausgeführt wird
- 13. kopieren App.config, wenn sie mit CodeAnalysis.Compilation.Emit Kompilieren
- 14. Starten Sie das Projekt nur, wenn die Datei existiert
- 15. Chef - starten oder starten Sie den Dienst nach Bedarf neu
- 16. Ändern Sie die Lisp-Funktion, ohne sie neu zu schreiben?
- 17. Programmatisch stoppen und starten Sie die Express-Server neu (um die Ports zu ändern)
- 18. Ändern Sie die Server app.config Binding-Konfiguration vom Client
- 19. Sie müssen Spark erstellen, bevor Sie diesen Programmfehler ausführen, wenn Sie bin/pyspark starten
- 20. Verwenden Sie app.config aus fsx-Datei
- 21. Müssen Sie die Google Orte Autovervollständigung manuell starten
- 22. Wie starten Sie Rails von Rails neu?
- 23. Welches Kodierungsschema verwenden Sie, wenn Sie Binärdaten haben, die Sie über einen ASCII-Kanal senden müssen?
- 24. So starten Sie die Azure App Service Instanz neu
- 25. Müssen Sie den Apache neu starten, damit die Regeln zum erneuten Schreiben in der .htaccess-Datei wirksam werden?
- 26. Starten Sie IIS auf Remotecomputer neu
- 27. Neu Starten von Cron nach dem Ändern der Crontab-Datei?
- 28. Sie müssen die Meldung "Zugriff verweigert" ändern, die angezeigt wird
- 29. Server zum Zwecke des Mailings neu starten müssen
- 30. Das Ändern der Android-Systemuhr stoppt die Timer. Wie kann ich sie neu starten?
Nein, müssen Sie nicht. Ref Link http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.refreshsection.aspx –