2010-06-02 28 views

risposta

1

Quale quadro stai lavorando con? Ho alcune indicazioni se stai sviluppando con .Net 4.0 come sono.

Se si dispone dell'accesso alla macchina in cui è possibile installare i servizi, utilizzare il servizio di flusso di lavoro nuovo e migliorato per questa situazione. Ciò che è bello di loro è che i flussi di lavoro possono persistere per minuti, ore, giorni, settimane, mesi, ecc. Che giacciono "dormienti" fino al termine dei periodi di ritardo.

Se si tratta di una macchina IIS (e se questa è la strada che si desidera prendere) è relativamente semplice crearla direttamente come progetto/soluzione "Servizio flusso di lavoro" in VS 2010. Da lì viene presentato un designer e diverse attività del flusso di lavoro nella barra degli strumenti.

Aggiungere un'attività del diagramma di flusso per inserire le attività di posta elettronica all'interno di. Il diagramma di flusso è ideale perché può inizializzare tutto ciò che è necessario e il flusso decisionale può reindirizzare all'indietro in direzione (al contrario dell'attività di sequenza di movimento sempre in avanti). Tutto ciò che devi fare con la tua logica dipende da te, dato che la tua domanda non fornisce molti dettagli.

Ora, se si utilizza .Net 3.5, vorrei pensare di astenersi dal creare flussi di lavoro dal momento che è necessario migrare quando si passa a 4.0 (WF 3.5 NON è compatibile con 4.0). Con l'accesso di amministratore alla macchina è possibile installare un servizio di Windows che contiene un timer per attivare il codice ogni 30 giorni (o comunque definito) secondo necessità.

+0

Penso che vado in questa direzione. Grazie ... – Soeren

+0

@Soeren, la chiave qui è che non è possibile attivare in modo affidabile l'evento dal processo di lavoro asp.net/IIS. Hai bisogno del servizio Windows. – StingyJack

1

Se è specifico per SQL Server, è possibile utilizzare SQL Jobs.

1

Se si vuole fare con il vostro ASP.NET applicazione invece di un'applicazione separata, avete alcune opzioni:

Dal momento che si desidera eseguire ogni 30 giorni al posto di tutti i giorni, vi consiglio questo metodo di utilizzo una tabella di pianificazione anziché variabili dell'applicazione o cache per pianificare i lavori:

È possibile impostare una tabella di pianificazione nel db e controllare quando è stato aggiornato l'ultima volta nel proprio global.asax. All'avvio della sessione, controlla se la data corrente è superiore a 30 giorni. Se lo è, quindi chiama un metodo per inviare e-mail.

Se si inviano e-mail, quindi aggiornare la tabella di pianificazione con la data corrente.

Problemi correlati