none
Como comunicar un formulario con un servicio de windows RRS feed

  • Pregunta

  • Hola gente del foro tengo esta duda desde algun tiempo y no e logrado descubrir cual es el metodo mas apropiado para comunicar un formulario con un servicio de windows

    EL PROBLEMA

    he creado un servicio de windows que me envia un correo cuando tengo poco espacio en los dicos duros de mis PC el problema es que no puedo cambiar las opciones en el servicio como el destino del correo, el puerto smtp, y otros ya que el servicio no tiene interfaz grafica

    Las consultas son como puedo comunicar el servicio con una aplicacion sin necesidad de una base de datos?

    Se puede integrar un formulario al servicio de windows?

    Cual es el metodo mas apropiado para modificar los valores en un servicio de windows?

    todo esto surge por un trabajo de la universidad de ante mano gracias por su ayuda 

    Adios


    Rodolfo

    lunes, 14 de septiembre de 2015 18:10

Respuestas

  • hola

    >>el problema es que no puedo cambiar las opciones en el servicio como el destino del correo, el puerto smtp, y otros ya que el servicio no tiene interfaz grafica

    pero se supone que es informacion deberias definirla en el archivo de configuracion, en el app.config

    MailMessage - Envia mail con GMail (1/3)

    >>Las consultas son como puedo comunicar el servicio con una aplicacion sin necesidad de una base de datos?

    no deberias hacer eso, el servicio debe correr de forma independiente de la aplicacion

    >>Cual es el metodo mas apropiado para modificar los valores en un servicio de windows?

    el servicio ejecuta en la pc del usuario o en un servidor

    quizas podrias usar socket o WCF para comunicar una aplicacion con servicio que exponga el servicio de windows

    entonce envias datos para que registre la informacion, podria hacerlo en una db local de Sql Compact o Sqlite

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 14 de septiembre de 2015 18:36
  • Cual es el metodo mas apropiado para modificar los valores en un servicio de windows?

    Una forma sencilla en la que puedes hacerlo, aunque no defiendo que sea la más adecuada en todas las circunstancias, consiste en almacenar todos los parámetros del servicio en un fichero, que normalmente el servicio lee al iniciarse. Cuando desde el formulario quieres cambiar los parámetros, los salvas en el mismo fichero, y a continuación le envías al servicio un comando para que recargue el fichero, actualizando así sus parámetros.

    Para enviarle el comando, puedes usar el método ExecuteCommand de la clase ServiceController. Dentro del servicio, se recibe mediante un override del OnCustomCommand. Recuerda que solo funcionan los comandos entre 128 y 256; si usas uno fuera de rango no da ningún error pero el servicio no lo recibe.

    lunes, 14 de septiembre de 2015 18:51
    Moderador

Todas las respuestas

  • hola

    >>el problema es que no puedo cambiar las opciones en el servicio como el destino del correo, el puerto smtp, y otros ya que el servicio no tiene interfaz grafica

    pero se supone que es informacion deberias definirla en el archivo de configuracion, en el app.config

    MailMessage - Envia mail con GMail (1/3)

    >>Las consultas son como puedo comunicar el servicio con una aplicacion sin necesidad de una base de datos?

    no deberias hacer eso, el servicio debe correr de forma independiente de la aplicacion

    >>Cual es el metodo mas apropiado para modificar los valores en un servicio de windows?

    el servicio ejecuta en la pc del usuario o en un servidor

    quizas podrias usar socket o WCF para comunicar una aplicacion con servicio que exponga el servicio de windows

    entonce envias datos para que registre la informacion, podria hacerlo en una db local de Sql Compact o Sqlite

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 14 de septiembre de 2015 18:36
  • Cual es el metodo mas apropiado para modificar los valores en un servicio de windows?

    Una forma sencilla en la que puedes hacerlo, aunque no defiendo que sea la más adecuada en todas las circunstancias, consiste en almacenar todos los parámetros del servicio en un fichero, que normalmente el servicio lee al iniciarse. Cuando desde el formulario quieres cambiar los parámetros, los salvas en el mismo fichero, y a continuación le envías al servicio un comando para que recargue el fichero, actualizando así sus parámetros.

    Para enviarle el comando, puedes usar el método ExecuteCommand de la clase ServiceController. Dentro del servicio, se recibe mediante un override del OnCustomCommand. Recuerda que solo funcionan los comandos entre 128 y 256; si usas uno fuera de rango no da ningún error pero el servicio no lo recibe.

    lunes, 14 de septiembre de 2015 18:51
    Moderador