2010-06-02 18 views

Respuesta

1

Qué marco está trabajando? Tengo algunos consejos si estás desarrollando con .Net 4.0 como yo.

Si tiene acceso a su máquina donde puede instalar servicios, utilizaría el nuevo y mejorado Servicio de flujo de trabajo para esta situación. Lo bueno de ellos es que los flujos de trabajo pueden persistir durante minutos, horas, días, semanas, meses, etc., y permanecen inactivos hasta que finalizan los períodos de retraso.

Si se trata de una máquina IIS (y si esa es la ruta que le gustaría tomar) es relativamente simple de construir directamente como un proyecto/solución de "Workflow Service" en VS 2010. Desde allí se le presenta un diseñador y varias actividades de flujo de trabajo en la barra de herramientas.

Agregue una actividad de diagrama de flujo para colocar sus actividades de correo electrónico dentro de. El diagrama de flujo es ideal porque puede inicializar todo lo que necesite y el flujo de decisión puede redirigirse hacia atrás en dirección (en oposición a la actividad de secuencia de movimiento siempre hacia adelante). Lo que tiene que hacer con su lógica depende de usted, ya que su pregunta no proporciona muchos detalles.

Ahora, si está usando .Net 3.5, entonces pensaría en abstenerme de crear Workflows ya que tiene que migrar cuando cambie a 4.0 (WF 3.5 NO es compatible con 4.0). Con el acceso de administrador a la máquina, puede instalar un Servicio de Windows que contiene un temporizador para disparar el código cada 30 días (o como se lo defina) según sea necesario.

+0

Creo que voy a ir en esta dirección. Gracias ... – Soeren

+0

@Soeren, la clave aquí es que no se puede desencadenar de manera confiable el evento del proceso de trabajo asp.net/IIS. Necesitas el servicio de Windows. – StingyJack

1

Si es SQL Server específico, puede usar SQL Jobs.

1

Si quiere hacerlo con su aplicación ASP.NET lugar de una aplicación separada, usted tiene algunas opciones:

ya que desea que se ejecute cada 30 días en lugar de todos los días, recomiendo este método de usar una tabla de programación en lugar de variables de aplicación o caché para programar trabajos:

Puede configurar una tabla de programación en su base de datos y comprobar cuándo fue actualizada por última vez en su global.asax. En el inicio de la sesión, verifique si la fecha actual es más de 30 días. Si es así, llama a un método para enviar correos electrónicos.

Si envía correos electrónicos, actualice su tabla de programación con la fecha actual.

Cuestiones relacionadas