vtortola.NET Logo
Servicios Windows con dependencias

Servicios Windows con dependencias

por vtortola viernes, 01 de febrero de 2008

Imagina que tu servicio necesita de otro servicio para cumplir su función, supongamos que el servicio 'a' necesita del servicio 'b'. Si yo reinicio 'b' ... 'a' es posible que pierda la conexión ... aparezcan errores ... e incluso pudiese darse el caso de quedar funcionando pero inconsistente, otro problema es que puede ser que al arrancar la máquina 'a' arranque más rápido e intente conectar a 'b' de forma infructuosa ... con las consecuencias que ello acarreé (que no deberían ser muchas si has pensado en "cuando las cosas no salen como deberían" cuando lo desarrollaste).

Para solucionar este problema de forma elegante están las dependencias de servicio.

Si al crear 'a' decimos que depende de 'b' logramos este comportamiento:

  • si se reinicia 'b' se reinicia 'a'.
  • si se detiene 'b' se detiene 'a'.
  • pero si se inicia 'b' ... y 'a' esta parado NO se inicia 'a' (ojo con esto :P ).
  • cuando arranque la máquina, iniciará 'b' y después 'a'.

Es una pijada bastante sencillo de hacer y es muy útil.

Voy a agregar el servicio Message Queuing (MSMQ) como dependencia del servicio de instalable de prueba que cree el otro día, imaginando que no puede trabajar sin MSMQ.

Primero necesitamos saber el Nombre del servicio del que queremos depender, que aparece en primer lugar en la ventana de propiedades:

image

Después añadimos ese nombre (ó nombres si son varios) a la propiedad ServicesDependedOn de nuestro ServiceInstaller:

image

Y listo, al instalar nuestro servicio veremos que aparece MSMQ como dependencia:

image

Vemos, que MSMQ tiene también sus propias dependencias y el comportamiento antes citado se reproducirá en cadena.

Cosa curiosa... ¿Como añadir una dependencia a un servicio que ya esta instalado? Puuuess... lamentablemente hay que añadirla directamente sobre el registro de Windows (y digo lamentablemente porque no me gusta tocar el registro... y menos para esto :P ).  La clave a modificar esta en:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<Service name>

image

Ale espero que sea útil :D

Actualmente calificado 5.0 por 3 persona(s)

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

.NET 2.0 | Windows

Related posts

Comentarios

febrero 1. 2008 17:24

pingback

Pingback from geeks.ms

Servicios Windows con dependencias - Pensando en asíncrono

geeks.ms

Comments are closed

Powered by BlogEngine.NET 1.1.1.8
This theme is a variation of Mads Kristensen by Valeriano Tórtola

Valeriano Tórtola

Personal Ver perfil
E-mail Enviar correo
LinkedIn LinkedIn
Fotos Fotos
MCPD

Publicidad

Posts recientes

Disclaimer

Las opiniones mostradas aqui son mis opniones y no representan el punto de vista de mi empresa en ninguna forma.

Creative Commons License

Esta obra está bajo una licencia de Creative Commons

Locations of visitors to this page

© Copyright 2010

Sign in

Calendario

<<  marzo 2010  >>
lumamijuvido
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234

Ver en calendario extendido