none
Tipo de proyecto para consumir un servicio SOAP en base a un timer RRS feed

  • Pregunta

  • Buenas, tengo que hacer una app para consumir un servicio soap en el cual dispara el consumo cada 15 minutos. Esto ocurre porque debo tomar los "nuevos registros" de una Base de Datos Firebird y enviarla a SAP mediante servicio SOAP. Además tengo configurada una base de datos local en SQL para ir guardando un log de errores en caso que falle el envío.

    Quería consultar que tipos de proyecto debo abordar: acualmente hice:

    - una biblioteca de clases para la capa Datos con las conexiónes a Firebird, SOAP y SQL.

    - una biblioteca de clases para definir la lógica de datos/servicios

    - una biblioteca de clases en el cual defino los contratos: entidades, parametros de entrada y salida, interfaces.

    Pero necesito definir una capa como proyecto de inicio para que llame a consumir cada 15 minutos el servicio SOAP de SAP, en el cual tengo que involucrar lógica como por ejemplo, que no se envíen registros duplicados, que se envíen los parámetros correctamente y no sean nulos, etc. Mi duda es que proyecto debo crear para esto:

    ASP.net MVC? Servicio WFC? Servicio de winows .NET Framework?

    La aplicación estará hospedada en un web server con IIS.

    Agradezco la respuesta.

    Ss.

    Rodrigo

    martes, 6 de abril de 2021 15:29

Todas las respuestas

  • Recomiendo un Servicio Windows, .NET Framework (suponiendo que tus librerías sean también .NET Framework o .NET Standard). La ventaja es que lo dejas instalado y se ejecuta permanentemente (oculto, no presenta nada en pantalla) sin necesidad de que haya un usuario "logado" ejecutándolo.

    Al crear el proyecto, te creará una clase "Service1" que dentro tendrá un método OnStart. Dentro del OnStart simplemente inicializas el Timer (System.Treading.Timer o System.Timers.Timer, NO System.Windows.Timer), y en el evento del timer llamas a las librerías que tienes preparadas. No metas más código en el OnStart. Se supone que este método solo tiene que inicializar cosas y a continuación terminar inmediatamente. No es ahí donde se debe hacer el trabajo del Servicio.

    martes, 6 de abril de 2021 16:20
  • muchas gracias. Tomaré ese camino.

    martes, 6 de abril de 2021 16:28