none
Servicio de windows modular RRS feed

  • Pregunta

  • Hola desconozco si mi problema corresponde a algún tema y/o concepto en particular por esa razón no sé como buscarlo pero les platico haber si alguien me puede orientar...

    Lenguaje: C# 
    Framework: 4.5
    Proyecto: Servicio de windows ejecutando socket, TCP
    Descripción:
    Estoy desarrollando una aplicación de tipo "servicio de windows" este servicio ejecuta un socket-server que se mantiene a la espera de llamadas, las llamadas pueden ser realizadas desde 3 aplicaciones distintas y el socket-server identifica desde donde vienen y a que módulo dentro del servicio se tiene que procesar la llamada. Hasta aquí todo bien.

    Cada modulo en mi servicio corresponde a una dll y cada dll hace operaciones especificas, entonces si yo quiero actualizar una sola dll no puedo solo remplazarla porque me dice que un proceso la esta utilizando y obviamente es mi servicio quien la usa y tengo que detener toda la aplicación solo actualizar un módulo, entonces mi pregunta es....

    Hay alguna manera de agregar las dll para que se puedan modificar de manera independiente sin necesidad de detener toda la aplicación?

    Les agradezco de antemano cualquier comentario
    Saludos!

    lunes, 30 de septiembre de 2019 17:30

Respuestas

Todas las respuestas

  • hola

    >>Hay alguna manera de agregar las dll para que se puedan modificar de manera independiente sin necesidad de detener toda la aplicación?

    poder se puede, pero va a depender como cargas la dll

    Si haces simplemente una referencia a estas y usas el new para instanciarl entonces no vas a poder

    Deberias cargar la dll como byte[] y crear la instancia dinamicamente, de esta forma el archivo no quedara lockeado

    Procedimientos recomendados para cargar ensamblados

    Sino la otra es usar el AppDomain

    Problem loading and unloading dynamically an assembly DLL in C#

    ya que el domian se puede destruir o usar dentro de un using, asi que luego de usarlo libera la dll que cargao

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta FredoAR martes, 1 de octubre de 2019 15:27
    lunes, 30 de septiembre de 2019 18:16
  • Hola, muchas gracias
    Efectivamente la manera en que agrego las dll es "Agregando una referencia" y genero las instancias a traves de "new"

    Parece que la carga dinámica de ensamblados puede resolver mi problema ya lo estuve leyendo comenzare a practicarlo. Muchas gracias
    Saludos
    martes, 1 de octubre de 2019 15:30