Domanda

Ho bisogno di un applicazione in background per sostenere la mia applicazione client, che dovrebbe sempre eseguito sul computer client indipendentemente dall'applicazione principale cliente è in esecuzione o meno.

Servizio di Windows è stata la mia prima scelta, ma problemi che ho riscontrato con Service di Windows sono stati:. Facilità di controllo sul servizio di Windows tramite principale applicazione client, il rilascio e l'installazione di patch per il servizio di Windows e risoluzione dei problemi se il servizio Windows non riesce a eseguire

Così, ho iniziato a pensare di alternative al servizio di Windows e ha scoperto che un'applicazione Windows Form con NO forme visibili può farlo per me. Questa applicazione invisibile dovrebbe iniziare con l'avvio del sistema e continuare a correre per tutto il tempo, a fare tutto il lavoro che un servizio di Windows farebbe. Ma prima di andare più in profondità lo sviluppo, voglio esplorare i pro ei contro di questo approccio.

Qualche suggerimento / commenti su questo approccio?

È stato utile?

Soluzione

Le vostre esigenze sono più adatti per il servizio di Windows. vantaggio principale con servizio di Windows è che inizierà non appena il sistema viene in su, a prescindere nessuno viene registrato nel sistema oppure no.

Per risolvere problemi di distribuzione, a costruire la vostra logica di business in assembly separato e chiamare la necessaria funzione di servizio di Windows withing. In questo modo è possibile distribuire solo l'assemblaggio modificato.

applicazione WinForm con forma invisibile non servirà allo scopo. HTH

Altri suggerimenti

Questo non è possibile. le applicazioni in modalità utente deve essere avviato da un utente, e non continueranno a funzionare quando l'utente si disconnette. Questo è lo scopo della manifestazione SessionEnding: per consentire di arrestare la vostra applicazione con grazia quando l'utente si disconnette o il computer si sta spegnendo. Non si può semplicemente iniziare qualcosa all'avvio del sistema e tenerlo in funzione per tutto il tempo.

Hai bisogno di un servizio di Windows per questo. Ma si deve essere consapevoli che sotto Windows Vista e versioni successive, un servizio non può interagire direttamente con l'utente. Corrono in un processo separato e sono limitati dalla visualizzazione propria interfaccia utente. Non è chiaro dalla domanda esattamente ciò che i vostri bisogni sono, ma questa è una limitazione importante di un servizio di Windows che vale la pena considerare. Una corretta progettazione in realtà non dovrebbe richiedono questo, ma ci sono a quanto pare un sacco di persone a cui questo nuovo, il comportamento più sicuro è una vera sorpresa. Spiego questo più in dettaglio nelle relative risposte per le questa domanda e quest'altra domanda .

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