Metodo semplice per accettare l'input da riga di comando per un servizio Windows standard scritto in C #?

StackOverflow https://stackoverflow.com/questions/1609164

Domanda

Ho scritto un servizio Windows abbastanza semplice in C # che si avvia automaticamente e funziona A-okay. Mi chiedevo il metodo migliore per fare in modo che il servizio accettasse l'input da riga di comando: proviene sempre dallo stesso utente (admin) e il servizio stesso è completamente attendibile (LocalSystem).

Conosco un po '(molto poco) la terminologia del modello di progettazione - dovrei cercare di racchiudere questo semplice servizio in un modello in stile Interprete? È troppo complesso e c'è un modo per farlo attraverso il punto di ingresso del programma? (Come se stessi solo realizzando una semplice app Console che potesse prendere string [] args?)

Fondamentalmente dovrebbe accettare qualche grammatica molto specifica (comandi specifici) che può essere emessa tramite console ogni volta, e solo quei comandi specifici (per evitare, si spera, una qualsiasi di una varietà di problemi di sicurezza).

Se questo ha bisogno di chiarimenti, fammelo sapere e grazie per eventuali suggerimenti (o persino soluzioni)!

È stato utile?

Soluzione

L'ho fatto facendo in modo che un'applicazione della console modificasse il mio file di configurazione che il mio servizio sapeva controllare controllando la cartella per le modifiche.

Altri suggerimenti

Invece puoi aggiungere il file App.Config nel tuo progetto, il servizio Windows può accedere a app.config nella stessa cartella di yourapp.exe.config.

La configurazione in .net è altamente organizzata in termini di grammatica e vantaggi di personalizzazione.

L'uso di App.config non richiede anche la modifica delle impostazioni di installazione.

Da quello che hai descritto, questo è quello che stai cercando:

Crea e comunica con un servizio Windows incustodito utilizzando .NET

  

L'evento OnCustomCommand consente un   applicazione per interagire con una corsa   servizio passando valori interi.

...

  

Una volta avviato il servizio, si invia   i comandi interi ad esso usando il   Service ExecuteCommand di ServiceController   metodo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top