226 messaggi dal 08 ottobre 2010
Spero sia la sezione giusta.

Volevo gestire in maniera asincrona dei processi di creazione di documenti e invio email.

In particolare mi serve:

1) Un processo batch che gira e ogni tot minuti controlla (ed eventualmente modifica) dei campi nel db

2) Un processo "a chiamata" (chiamato più volte anche da quello di sopra) per la creazione di documenti ed invio e-mail.

Per il primo punto sono un pò sperso.. come si crea di solito un processo batch? potrei fare una dll con un main (sparo un pò a caso.. ho fatto cose del genere in java non so se con vb.net esistano degli equivalenti) ma mi piacerebbe avere un minimo di controllo "elegante" sullo spegnimento e riavvio.

Per il secondo punto pensavo che potesse essere una cosa carina anche creare un webservice non visibile dall'esterno (ho visto degli esempi di chiamate asincrone ai webservice), ma mi chiedo se non sia un uso inopportuno dei webservice. Altrimenti vado di Thread (ProcessThread o Task?), ma mi farebbe comodo qualche esempio di come lavora vb.net coi thread.

Qualsiasi consiglio, suggestione, aiuto è ben accetto!
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,
se hai la possibilità di amministrare il server, potresti implementare il processo batch in un servizio Windows.
I servizi possono partire automaticamente all'avvio della macchina e, all'occorrenza, possono essere messi in pausa, fermati e riavviati dalla console di gestione che si apre al comando services.msc.
Tu puoi eseguire del codice in corrispondenza di ciascuna di quelle azioni gestendo gli eventi OnStart, OnPause, OnStop, OnContinue, OnShutdown. Questi ti permetteranno, come chiedevi, di gestire in maniera elegante l'avvio e l'arresto del processo.
Qui trovi elencati i passi per realizzare un servizio per windows.
http://msdn.microsoft.com/it-it/library/zt39148a.aspx

Per il secondo punto, realizza un servizio WCF ospitato in IIS o all'interno del servizio Windows stesso.
Per decidere per l'una o l'altra strada, bisogna capire chi saranno gli utenti di quel servizio WCF. Se si tratta di altre applicazioni .NET ospitate su altre macchine della rete locale, puoi scegliere di ospitarlo nel servizio Windows.
Se invece si tratta di applicazioni web o se gli altri sviluppatori si sentono più a loro agio ad effettuare chiamate web, allora è preferibile che sia ospitato in IIS.
Ecco un articolo che parla delle opzioni per ospitare un servizio WCF.
http://msdn.microsoft.com/en-us/library/bb332338.aspx#msdnwcfhc_topic4


ciao
Modificato da BrightSoul il 30 ottobre 2012 20.10 -

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.