2012-04-25 7 views
5

Tengo un servicio de Windows que estoy creando y me pregunto qué opciones hay disponibles para que los desarrolladores puedan configurar el servicio.Permitir que se configure un servicio de Windows

El servicio forma parte de un proyecto de código abierto más grande y, por lo tanto, el servicio se instalará en muchas máquinas diferentes.

Normal Me gustaría utilizar un web/app.config para esto, pero no estoy seguro de si esto es posible.

Por lo tanto, estoy buscando para saber cómo otros manejan este caso.

Respuesta

6

haces lo que esperas. Utiliza app.config, que se renombrará como <exeName>.config cuando se construya el proyecto y luego <exeName>.config será leído por el servicio llamado <exeName>.

Los ajustes se aplican en capas y pueden provenir de otros archivos de configuración de la máquina, como machine.config. Se puede leer sobre how configuration is handled on MSDN

EDITAR

En respuesta al comentario: Un servicio sólo leerá la configuración cuando se inicia (por razones de Potencia). Si quiere volver a cargar el archivo de configuración más adelante, creo que debe manejarlo usted mismo.

se podía leer la última fecha/hora de modificación del archivo de configuración para determinar si el archivo se ha cambiado, o la configuración de un file system watcher y luego decirle al administrador de configuración para recargar dicha sección próxima vez que se lee, llamando ConfigurationManager.RefreshSection("appSettings") y esa sección se volverá a cargar desde el disco la próxima vez que acceda a ella. Consulte el ConfigurationManager MSDN docs

+0

de acuerdo con app.config, de todos modos, yo mismo creo todos mis servidores WCF con el Servicio de Windows y la aplicación relacionada.config – rhapsodyn

+1

También estaba pensando en usar el archivo de configuración, pero tengo una pregunta secundaria, cuando el servicio se está ejecutando, ¿Se puede modificar el archivo de configuración y la nueva configuración se cargará en el servicio, o se debe detener/iniciar para leer la nueva configuración? por ejemplo, cadenas de conexión. – harag

+0

@harag Actualicé la respuesta para incluir una respuesta a su comentario, pero realmente debería hacer su propia pregunta –

4

Puede simplemente usar un archivo .config con el mismo nombre que el exe que es el servicio.

Si su servicio se ejecuta como MyService.exe, su archivo de configuración sería MyService.exe.config.

En Visual Studio, simplemente agregue un archivo de configuración de la aplicación. Esto agregará un archivo app.config al proyecto.

A continuación, puede acceder a cosas como AppSettings y ConnectionStrings utilizando la clase ConfigurationManager, tal como lo hace con las aplicaciones ASP.Net.

Cuestiones relacionadas