Servizio Windows in .NET con comandi http

0

Devo scrivere un servizio Windows in .NET 4.6 / C #, che legge i messaggi dalle code RabbitMQ e fa un po 'di elaborazione in base al tipo di messaggio. L'elaborazione include la lettura del messaggio e in base alle regole aziendali, inserisce / aggiorna il database SQL e invia un altro messaggio che conferma l'avvenuta elaborazione del messaggio ricevuto.

L'intero servizio viene eseguito implementando gli eventi OnSatrt () e OnStop () in ServiceBase class. La lettura delle code e l'elaborazione sono state completate. Il pezzo mancante per me qui è come avere lo stesso servizio di Windows per accettare i comandi http per l'avvio, l'arresto e il riavvio del servizio. Come posso progettare un servizio Windows con funzionalità HTTP e logica di elaborazione 24x7 al suo interno?

Non sto cercando un intero design o un intero codice qui, ho solo bisogno di un'idea su come un servizio Windows in .NET può accettare i comandi http mentre elabora i dati dalle code.

    
posta PushCode 18.07.2017 - 14:39
fonte

1 risposta

1

Sebbene sia certamente possibile che un servizio Windows ascolti le richieste http (questo è ciò che fa IIS in fondo), non è possibile avere un servizio di Windows in ascolto per i comandi da avviare e arrestare. Quello sarebbe un paradosso. Come può il tuo servizio ascoltare un comando di avvio prima che venga avviato?

La chiave è avere un secondo controllo di servizio il primo. Scrivere un piccolo servizio Web per accettare i comandi start / stop / restart, ospitarli in IIS e inoltrare i comandi al gestore di controllo del servizio di Windows. È possibile utilizzare qualsiasi tecnologia conveniente per questo, l'API Web ASP.NET o WCF andrà bene.

    
risposta data 18.07.2017 - 16:46
fonte

Leggi altre domande sui tag