Il modo migliore per implementare il servizio Windows in C #

0

Ho scritto un servizio C # usando MVC (Nessuna vista).

Il programma avvia l'esecuzione e elabora alcuni dati dal database e memorizza alcuni dati aggregati e funziona perfettamente in VB ogni volta che lo eseguo.

Ciò di cui ho un problema è distribuirlo alla produzione. Ogni volta che preparo un'installazione ed eseguo sul server di produzione, viene installato un servizio che viene visualizzato nell'elenco dei servizi.

Quello che sto cercando di ottenere è di rendere il servizio tempestivo o di essere sempre in esecuzione in background, quindi non mi coinvolgerebbe nell'eseguire manualmente il servizio.

Ho letto che i servizi di conteggio del tempo sono una cattiva idea (in esecuzione con il conto alla rovescia del tempo impostato e invocando il metodo di esecuzione).

Quali sono i metodi consigliati per la distribuzione di un servizio di questo tipo che consente l'aggregazione e il popolamento dei database tempestivamente.

    
posta smned 13.07.2018 - 11:38
fonte

2 risposte

2

2 modi, con alcune considerazioni:

Distribuisci come servizio Windows

Per motivi di semplicità, consiglierei qualcosa come link che semplificherà il processo di distribuzione per te.

Una volta implementato, dovresti aspettarti di vedere l'avvio del servizio impostato su 'Automatico' in base ai tuoi requisiti. Non c'è dubbio che dovrai configurare topshelf prima di costruire la tua soluzione. Quindi nel codice per il tuo servizio puoi impostare un timer per eseguire regolarmente qualsiasi funzionalità che desideri eseguire. Detto questo, considerato il fatto che si desidera eseguire regolarmente questa operazione, prenderei seriamente in considerazione ...

Attività pianificata di Windows

Questo prenderà cura del problema di temporizzazione per te. Non è necessario reinventare la ruota quando si pianifica l'esecuzione del codice, Windows ha questo integrato per te.

link

    
risposta data 13.07.2018 - 16:23
fonte
1

Suppongo che stiamo parlando di un servizio di Windows qui.

I servizi di Windows vengono eseguiti continuamente "in background" e possono essere avviati automaticamente all'avvio del computer server. È necessario configurare il servizio per farlo.

Non c'è assolutamente nulla di sbagliato nell'avere un Timer che chiama periodicamente il metodo run () (anche se devi usare quello giusto, là sono circa tre tra cui scegliere). Ho scritto molti servizi di Windows che funzionano esattamente in questo modo.

    
risposta data 13.07.2018 - 13:21
fonte

Leggi altre domande sui tag