Si estamos desarrollando una nueva solución para desplegar en Windows Azure y necesitamos ejecutar tareas periódicas o en background, lo más recomendable es utilizar para ello un Worker Role.
Muchas veces sin embargo nos encontramos con que vamos a migrar una solución ya desarrollada previamente y en ese caso es frecuente encontrarse con que tenemos desarrollados una serie de Servicios Windows. En este artículo veremos cómo podemos instalar estos servicios para que sigan funcionando en la Plataforma Windows Azure sin necesidad de tocar ni una sóla línea de código. Al final del post podéis encontrar un enlace para descargar el proyecto de ejemplo.
Partiremos del supuesto de que ya disponemos de un Servicio Windows desarrollado con .NET Framework 4.0. Si os interesa, en esté artículo de MSDN o en este post de Return(GiS) podéis ver cómo se haría.
%WinDir%\Microsoft.NET\Framework64\v4.0.30319\Installutil.exe startup\DemoWindowsService.exe NET START MyService
%WinDir%\Microsoft.NET\Framework64\v4.0.30319\Installutil.exe startup\DemoWindowsService.exe
NET START MyService
Ya lo tenemos. Ahora basta con generar el paquete de despliegue y subirlo a Windows Azure. Al arrancar la instancia o instancias de nuestro Web Role, se lanzará el fichero batch instalando nuestro Servicio Windows y luego lo iniciará. Ahora podéis conectaros por Escritorio Remoto a vuestra instancia y podréis verificar que vuestro servicio está instalo y funcionando como en esta imagen:
Código fuente del ejemplo:
Nada más, espero que sea útil. Comentarios bienvenidos como siempre.
How to install a Windows Service in Windows Azure