Devi riavviare un servizio Windows se cambi app.config?Devi riavviare un servizio Windows se cambi app.config?
risposta
NET Framework leggerà l'app.config una volta, e mai toccare di nuovo l'app.config. Ecco perché è necessario riavviare l'applicazione per raccogliere la modifica.
Perché il framework .Net non rileva che app.config è cambiato e aggiorna tutti i dati di configurazione?
Il motivo è semplice, questo non è possibile in generale. uso
Let “Immagino che questo potrebbe essere fatto” logica di Raymond qui ...
Sì.
Presumibilmente si intende il file appname.exe.config?
No, non si hanno a. Ma se si desidera che le modifiche in app.config
abbiano effetto, potrebbe essere necessario riavviarlo. Oppure potresti voler implementare un meccanismo di watcher del file di configurazione personalizzato che altererebbe le impostazioni dei servizi al volo.
"se si desidera che le modifiche in app.config abbiano effetto", penso che sia implicito in la domanda! –
Fantastico, proprio quando sono fuori dai polli di gomma. –
@Gecat: gamma libera? –
Questo va oltre lo scopo della domanda, ma vorrei indovinare che si desidera apportare modifiche solo in alcune sezioni "specifiche dell'applicazione" (appSettings, ecc.).
Si sta meglio scrivendo il proprio gestore di sezioni di configurazione, che monitora il proprio file di configurazione - l'approccio nlog uses. Controllare la sezione "Riconfigurazione automatica".
Di solito sì. Tuttavia, è possibile scrivere un servizio Windows che metterà un monitor file sul file di configurazione e rileverà una modifica e la applicherà senza la necessità di riavviare.
Ad esempio, il framework di registrazione Log4Net offre un tale meccanismo per il suo file di configurazione.
L'ho usato prima. In sostanza, questo ricarica la sezione specificata prima di recuperare il valore. Piuttosto possibilmente meno efficiente di un osservatore di file di configurazione che si aggiorna su richiesta, ma sicuramente efficacemente usato con attenzione.
ConfigurationManager.RefreshSection("appSettings")
sValue = ConfigurationManager.AppSettings(name)
Questa è una grande scoperta! – d219
- 1. Ubicazione servizio app.config
- 2. Collegamento sul desktop per riavviare un servizio Windows
- 3. Come riavviare un servizio di Windows utilizzando Utilità di pianificazione
- 4. Servizio WCF app.config
- 5. Come si verifica se l'utente corrente ha il diritto di riavviare un servizio Windows?
- 6. Riavviare un servizio con servizi dipendenti?
- 7. Verificare se un servizio Windows è in esecuzione?
- 8. Come ottenere il nome del servizio Windows da app.config
- 9. Come riavviare automaticamente un servizio ucciso?
- 10. Come riavviare il servizio RabbitMQ
- 11. Come rilevare se Windows è spegnere o riavviare
- 12. Impatti delle modifiche web.config e app.config
- 13. Come verificare se è installato un servizio Windows in C#
- 14. come utilizzare systemD per riavviare un servizio quando inattivo?
- 15. Come riavviare il servizio in remoto?
- 16. Invia messaggio Windows a un servizio Windows
- 17. Come riavviare il servizio utilizzando il prompt dei comandi?
- 18. Avvia un servizio Windows disabilitato?
- 19. come faccio a ottenere Windows SCM per riavviare il mio servizio quando fallisce
- 20. Servizio WCF vs servizio Windows
- 21. Servizio WCF vs servizio Windows
- 22. Il programma di installazione del servizio di Windows non sta leggendo il file App.Config
- 23. Devi partecipare a un thread annullato? (pthreads)
- 24. Impossibile avviare il servizio Windows
- 25. Quando vengono effettivamente lette le impostazioni da app.config?
- 26. Come chiamare un servizio Windows da asp.net
- 27. Creare un servizio Windows in vb6
- 28. Chiamare Environment.Exit in un servizio Windows
- 29. Console.WriteLine() all'interno di un servizio di Windows?
- 30. Avvia automaticamente un servizio Windows all'installazione
No non è necessario. Rif link http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.refreshsection.aspx –