Pop

48.Servicios Windows.Depurando un servicio. Curso de C# con Visual Studio 2017.

48-.Servicios Windows. Depurando el servicio

   - En este capítulo del curso de programación en c# con visual studio 2017,vamos a continuar con los servicios windows. Hemos implementado una mínima lógica en el servicio windows para probar que una vez instalado en nuestra máquina ejecuta el código y escribe en un fichero en disco cada x segundos.

-Los servicios windows son una buena solución para ejecutar tareas que no requieran interfaz gráfica, ni ninguna interacción con los usuarios y  que tengan como objetivo realizar tareas en un segundo plano.Pero tienen el problema que no se se depurar dando al botón de "Play" del proyecto, aunque  si se puede depurar un servicio de Windows si se inicia el servicio y se asocia el depurador al proceso del servicio. En el video podéis ver como lo asocio:

Como resumen de estos tres capítulos del curso donde hemos trabajado con un servicio windows os dejo lo más importante:

  • Al compilar un servicio windows se genera un ejecutable .exe.
  • Se puede instalar en un sistema windows con la herramienta InstallUtil.exe del framework de microsoft. 
  • Se puede depurar  después de instalarlo asociandolo al proceso correspondiente, desde Visual Studio.

Os dejo el código del ejemplo una vez corregido:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace ServciosWindowsPrueba
{
    public partial class Service1 : ServiceBase
    {
        public Service1()
        {
            InitializeComponent();
        }

        protected override void OnStart(string[] args)
        {
            var worker = new Thread(Iniciar);
            worker.Name = "Prueba";
            worker.IsBackground = false;
            worker.Start();
           
        }

        void Iniciar()
        {
            Log l = new Log();
            int milisegundos = 15000;
            try
            {
              
                while (true)
                {
                 
                    l.AddInformationEntry("TODO VA BIEN");
                }
            }
            catch (Exception ex)
            {
                l.AddErrorEntry("error" + ex.ToString());
            }
            finally
            {
                Thread.Sleep(milisegundos);
            }
        }

        protected override void OnStop()
        {

        }
    }
}

No hay comentarios:

Publicar un comentario

Curso .NET Core en C# - 34.Creamos nuestro propio log

34.Creamos nuestro propio log Hola a todos. En este curso, analizaremos todos los conceptos básicos, intermedios y avanzados de  ASP.NET...