20 Gennaio 2022
Expand search form

Come si esegue un servizio Windows in Visual Studio?

Questa documentazione non è per l’ultima versione di Windows Service. Per l’ultimo contenuto sui servizi di Windows che utilizzano BackgroundService e il modello di Worker Service vedi:

Un servizio deve essere eseguito dal contesto del Services Control Manager piuttosto che da Visual Studio. Per questo motivo, il debug di un servizio non è così semplice come il debug di altri tipi di applicazioni di Visual Studio. Per eseguire il debug di un servizio, dovete avviare il servizio e poi collegare un debugger al processo in cui è in esecuzione. Potete poi eseguire il debug della vostra applicazione usando tutte le funzionalità standard di debug di Visual Studio.

Non dovreste collegarvi ad un processo a meno che non sappiate di cosa si tratta e comprendiate le conseguenze del collegamento ed eventualmente dell’uccisione di quel processo. Per esempio, se ti attacchi al processo WinLogon e poi interrompi il debug, il sistema si fermerà perché non può funzionare senza WinLogon.

Puoi attaccare il debugger solo ad un servizio in esecuzione. Il processo di collegamento interrompe il funzionamento corrente del tuo servizio; non ferma o mette in pausa l’elaborazione del servizio. Cioè, se il tuo servizio è in esecuzione quando inizi il debug, è ancora tecnicamente nello stato Started mentre fai il debug, ma la sua elaborazione è stata sospesa.

Dopo esservi collegati al processo, potete impostare dei punti di interruzione e usarli per eseguire il debug del vostro codice. Una volta usciti dalla finestra di dialogo che usate per collegarvi al processo, siete effettivamente in modalità debug. Puoi usare il Services Control Manager per avviare, fermare, mettere in pausa e continuare il tuo servizio, colpendo così i breakpoint che hai impostato. Puoi poi rimuovere questo servizio fittizio dopo che il debug ha avuto successo.

Questo articolo copre il debug di un servizio che è in esecuzione sul computer locale, ma è anche possibile eseguire il debug di servizi Windows che sono in esecuzione su un computer remoto. Vedi Debug remoto.

Il debug del metodo OnStart può essere difficile perché il Services Control Manager impone un limite di 30 secondi a tutti i tentativi di avviare un servizio. Per maggiori informazioni, vedi Risoluzione dei problemi: Debug dei servizi Windows.

Per ottenere informazioni significative per il debug, il debugger di Visual Studio ha bisogno di trovare i file simbolo per i binari di cui si sta eseguendo il debug. Se stai eseguendo il debug di un servizio che hai costruito in Visual Studio, i file simbolo (file .pdb) sono nella stessa cartella dell’eseguibile o della libreria, e il debugger li carica automaticamente. Se stai eseguendo il debug di un servizio che non hai costruito, dovresti prima trovare i simboli per il servizio e assicurarti che possano essere trovati dal debugger. Vedere Specificare i file dei simboli (.pdb) e dei sorgenti nel debugger di Visual Studio. Se stai debuggando un processo di sistema o vuoi avere simboli per le chiamate di sistema nei tuoi servizi, dovresti aggiungere i Microsoft Symbol Servers. Vedi Debug dei simboli.

Per eseguire il debug di un servizio

Costruisci il tuo servizio nella configurazione Debug.

Installate il vostro servizio. Per maggiori informazioni, vedi Come: Installare e disinstallare servizi.

Avvia il tuo servizio, sia da Gestore del controllo dei servizi, Server Explorero da codice. Per ulteriori informazioni, vedere Come: Avviare i servizi.

Avviare Visual Studio con credenziali amministrative in modo da potersi collegare ai processi di sistema.

(Opzionale) Sulla barra dei menu di Visual Studio, scegliere Strumenti, Opzioni. Nel menu Opzioni scegliete Debug, Simboliselezionare il Microsoft Symbol Servers e poi scegliete la casella di controllo OK pulsante.

Sulla barra dei menu, scegliete Allega al processo dal menu Debug o Tools menu. (Tastiera: Ctrl+Alt+P)

Il sito Processi appare.

Selezionate la voce Mostra i processi di tutti gli utenti casella di controllo.

Nella sezione Processi disponibili scegli il processo per il tuo servizio e poi scegli Allega.

Il processo avrà lo stesso nome del file eseguibile del tuo servizio.

Il sito Allega al processo appare.

Scegli le opzioni appropriate e poi scegli OK per chiudere la finestra di dialogo.

Ora sei in modalità debug.

Imposta tutti i punti di interruzione che vuoi usare nel tuo codice.

Accedete al Services Control Manager e manipolate il vostro servizio, inviando comandi di stop, pausa e continue per raggiungere i vostri breakpoint. Per maggiori informazioni sull’esecuzione del Services Control Manager, vedi Come: Avviare i servizi. Inoltre, vedi Risoluzione dei problemi: Debugging dei servizi Windows.

Suggerimenti per il debugging dei servizi Windows

Attaccarsi al processo del servizio permette di eseguire il debug della maggior parte del codice di quel servizio, ma non di tutto. Per esempio, poiché il servizio è già stato avviato, non potete eseguire il debug del codice nel metodo OnStart del servizio o del codice nel metodo Main che è usato per caricare il servizio in questo modo. Un modo per aggirare questa limitazione è quello di creare un secondo servizio temporaneo nella vostra applicazione di servizio che esiste solo per aiutare il debug. Puoi installare entrambi i servizi e poi avviare questo servizio fittizio per caricare il processo del servizio. Una volta che il servizio temporaneo ha avviato il processo, si può usare il Debug di Visual Studio per collegarsi al processo di servizio.

Provate ad aggiungere chiamate al metodo Sleep per ritardare l’azione fino a quando non sarete in grado di collegarvi al processo.

Provate a cambiare il programma in una normale applicazione console. Per fare questo, riscrivete il metodo Main come segue in modo che possa essere eseguito sia come un servizio di Windows che come un’applicazione console, a seconda di come viene avviato.

Come: Eseguire un servizio Windows come applicazione da console

Aggiungete un metodo al vostro servizio che esegua i metodi OnStart e OnStop:

Riscrivere il metodo Main come segue:

Nella sezione Applicazione delle proprietà del progetto, impostare il Tipo di uscita a Applicazione console.

Scegliere Avviare il debug (F5).

Per eseguire nuovamente il programma come servizio di Windows, installalo e avvialo come al solito per un servizio di Windows. Non è necessario invertire queste modifiche.

In alcuni casi, come quando vuoi eseguire il debug di un problema che si verifica solo all’avvio del sistema, devi usare il debugger di Windows. Scarica il Windows Driver Kit (WDK) e vedi Come eseguire il debug dei servizi Windows.

Potresti anche essere interessato agli argomenti

Come si esegue un servizio in Visual Studio?

Per eseguire il debug di un servizioCostruisci il tuo servizio nella configurazione di debug.Installa il tuo servizio. … Avvia il tuo servizio, sia da Services Control Manager, Server Explorer, o dal codice. … Avviare Visual Studio con credenziali amministrative in modo da poter collegare ai processi di sistema.Altri articoli…-Sep 15, 2021

Continua…

Come si avvia un servizio di Windows?

Per avviare un servizio su Windows 10, usa questi passaggi:Aprire Start.Cercare Servizi e fare clic sul risultato superiore per aprire la console.Fare doppio clic sul servizio che si intende fermare.Fare clic sul pulsante Start. Fonte: Windows Central.Fare clic sul pulsante Applica.Fare clic sul pulsante OK.Jun 19, 2020

Continua…

Come si pubblica un servizio Windows in Visual Studio?

Come creare un servizio Windows in C#? Aprire Visual Studio, andare su File > Nuovo e selezionare Progetto. … Vai su Visual C# -> “Windows Desktop” -> “Windows Service” e dai un nome appropriato e poi clicca su OK. … Clicca con il tasto destro del mouse sull’area vuota e seleziona “Add Installer “Feb 4, 2020

Continua…

Come faccio a rendere eseguibile un servizio di Windows?

Passi per creare un servizio definito dall’utenteAl prompt dei comandi MS-DOS (eseguendo CMD.EXE), digitare il seguente comando: Console Copy. … Esegui l’Editor del Registro di sistema (Regedt32.exe) e individua la seguente sottochiave: … Dal menu Modifica, seleziona Aggiungi chiave. … Selezionare la chiave Parameters. Dal menu Edit, selezionare Add Value. … Chiudi l’Editor del Registro di sistema.Sep 23, 2021

Continua…

Come faccio a installare automaticamente i servizi di Windows?

13 Risposte. Nella tua classe Installer, aggiungi un gestore per l’evento AfterInstall. Puoi quindi chiamare il ServiceController nel gestore dell’evento per avviare il servizio. Ora quando esegui InstallUtil sul tuo installatore, esso installerà e poi avvierà il servizio automaticamente.Jul 13, 2011

Continua…

Come posso fare in modo che un servizio di Windows esegua un file batch?

Usa il task scheduler -> crea compito -> nascosto. La casella di controllo per nascosto è in basso a sinistra. Imposta il compito per attivarsi al login (o qualsiasi altra condizione tu voglia) e scegli il compito nella scheda azioni. Eseguirlo nascosto assicura che il compito venga eseguito silenziosamente in background come un servizio.8 gennaio 2009

Continua…

Come si esegue un servizio di Windows come applicazione da console?

Eseguire un servizio Windows come applicazione console1 – Impostare il tipo di output del progetto su Console Application. … 2 – Esegui condizionatamente come console o come servizio in base a un argomento della riga di comando. … 3 – Aggiungete StartService() alla classe del servizio. … 4 – Aggiungere l’argomento della riga di comando /CONSOLE nelle opzioni di compilazione.Jan 16, 2020

Continua…

Come faccio a cambiare il percorso di Windows all’eseguibile?

Basta cliccare su Start Menu -> Esegui e inserire “Regedit” (senza virgolette). Poi devi navigare in HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices[nome del servizio]. Per cambiare la posizione dell’exe basta cambiare la chiave ImagePath.Nov 14, 2006

Continua…

Come faccio ad avviare un servizio da run?

Usa la finestra Esegui per avviare i servizi (tutte le versioni di Windows) Premi i tasti Win + R sulla tua tastiera, per aprire la finestra Esegui. Poi, digita “services. msc” e premi Invio o premi OK.Apr 25, 2018

Continua…

Come riavviare un servizio di Windows dalla riga di comando?

Come riavviare il servizio[i] nella riga di comando di WindowsAprire il terminale PowerShell o PowerShell ISE come amministratore.Utilizzare il seguente Get-Service il comando insieme a un parametro -Name (o) -DisplayName ed elencare i servizi che si desidera essere riavviati.Altri articoli…-Jan 26, 2020

Continua…

Come faccio a creare un programma di installazione per il servizio Windows in Visual Studio 2017?

Ecco i miei brevi passi come creare un servizio con installatore:Esegui Visual Studio, vai a File -> Nuovo -> Progetto.Seleziona .NET Framework 4, in ‘Cerca modelli installati’ digita ‘Servizio’Doppio clic su Service1.cs, fai clic destro nel designer e seleziona ‘Aggiungi installatore’Doppio clic su serviceInstaller1. … Vai a binDebug.More articoli…-Jan 27, 2012

Continua…

Come si esegue un comando come servizio di Windows?

Eseguire un’applicazione come servizio di WindowsAvviare il servizio. Per avviare il servizio, usa il seguente comando Powershell: Copy Start-Service -Name “ExampleService “Ferma il servizio. Per fermare il servizio, usa il seguente comando Powershell: Copy Stop-Service -Name “ExampleService “Disinstalla il servizio.Dec 3, 2018

Continua…

Come faccio a eseguire i comandi CMD attraverso un file batch?

Come faccio a eseguire i comandi cmd attraverso un file batch? Aprire cmd.Eseguire il comando cmd cd c:Program filesIIS Express.Eseguire il comando cmd iisexpress /path: “C:FormsAdmin. Site” /port:8088 /clr:v2.May 24, 2013

Continua…

Come si cambia il percorso di un servizio di Windows?

Per cambiare il percorso eseguibile di ServiceDesk vai alla seguente posizione dal registro di sistema. esegui -> regedit -> naviga fino alla posizione sotto menzionata ed evidenzia il ServiceDesk e dal lato destro modifica l’ImagePath come richiesto.

Continua…

Come si avvia un parametro di servizio di Windows?

Fai clic destro su MyComputer e seleziona Gestisci -> Servizi e applicazioni -> Servizi. Fai clic destro sul tuo servizio, seleziona Proprietà e dovresti vedere la casella Parametri di avvio sotto la scheda Generale.Jun 27, 2011

Continua…

Articolo precedente

Quanto dista Caen dalle spiagge della Normandia?

Articolo successivo

Dove devo piantare il mio cespuglio di farfalle?

You might be interested in …

Quanto è veloce un Mooney m20j?

Vref valore: varia da 72.000 dollari (1977) a 163.000 dollari (1998). Quanti sono nella flotta? 1,417 Costi di assicurazione: L’AOPA Insurance stima un premio annuale tra i 1.450 e i 1.700 dollari per un pilota […]

Come si usa il carrello elevatore ad avambraccio?

Le cinghie di sollevamento dell’avambraccio possono anche essere conosciute nel mondo delle spedizioni come cinghie per carrelli elevatori dell’avambraccio, carrelli elevatori dell’avambraccio, imbragature di sollevamento o imbragature di sollevamento dell’avambraccio. Sono comunemente usati per aiutare […]