WCF como servicio: modificación del archivo app.config

Tengo un WCF ejecutándose como un servicio de Windows. Lo implementé en un servidor (después de golpearme un poco la cabeza contra el teclado).

Último problema: al realizar cambios en app.config (nombreprograma.exe.config en el directorio de servicios en archivos de programa), obviamente debe reiniciarse.

El problema es este: cuando hago un cambio en el archivo de configuración e intento reiniciar el servicio, aparece el mensaje "Algunos servicios se detienen automáticamente si no tienen trabajo que hacer, por ejemplo ...". Tengo que desinstalar completamente el servicio, volver a instalarlo, modificar el archivo de configuración y ENTONCES iniciar el servicio.

Esto parece increíblemente tedioso e innecesario. Creo que debería poder simplemente editar el archivo de configuración y reiniciar. ¿Existe algún conflicto o entorno conocido al que deba estar atento?

¡Gracias! -Jason

preguntado el 16 de mayo de 11 a las 18:05

¿Ha revisado el registro de eventos en busca de excepciones? ¿Tiene la capacidad de adjuntar el depurador para ver qué sucede al reiniciar? -

Lamentablemente, no puedo adjuntar el depurador. Pero revisaré el registro de eventos la próxima vez. -

¿Está editando el archivo .config antes o después de detener el servicio? Me pregunto si su servicio simplemente no se detiene, independientemente de si el archivo de configuración se modifica o no. -

Estaba editando el archivo .config antes de detener el servicio; apuesto a que ese era mi problema. ¡Gracias Rally! -

3 Respuestas

En su lugar, podrías probar esto.

  • Detener el servicio
  • Modifique el archivo de configuración en desarrollo.
  • Vuelva a implementar el proyecto (por ejemplo, con Compilar -> Publicar)
  • Inicie el servicio.

contestado el 16 de mayo de 11 a las 22:05

Gracias, pero no puedo publicar. Es un servicio de Windows que tiene un proyecto de instalación con salida principal y un instalador del proyecto; cuando lo construyo, crea archivos Setup.msi y Setup.exe que se distribuyen. No publicable :-( Espero encontrar una manera de editar de manera simple los archivos de configuración, una vez instalados, sin pasar por un proceso de reinstalación y especialmente sin un proceso de reconstrucción. - user724198

Simplemente introduzca un enlace dll de acción personalizada desde su archivo msi.

El código de la dll (manipular un archivo, por ejemplo) se ejecutará después de que los archivos se hayan copiado en el disco, pero antes de que se complete la instalación, es decir, antes de que se inicie cualquier servicio.

Respondido el 22 de junio de 12 a las 15:06

Si se trata de un servicio de Windows, debe instalar una copia nueva (después de desinstalar la anterior). En el caso de servicios WCF publicados sobre IIS, puede realizar cambios en el servicio, construir el proyecto y luego publicarlo. Si alguna otra aplicación ya está usando sus servicios wcf (endPoint), entonces no se necesita ningún cambio en esa aplicación y los nuevos servicios modificados pueden ser consumidos por una nueva aplicación sin afectar la aplicación anterior.

Respondido 14 Oct 12, 18:10

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.