2010-05-07 20 views
7

Sto tentando di avviare un'applicazione console da un servizio Windows .NET. Il servizio è in esecuzione su un server Windows 2008.avvio di un processo da un servizio Windows .NET

Utilizzo Process.Start per eseguire l'applicazione della console e viene eseguita (è possibile visualizzarla nel task mgr), ma non viene restituito l'ID del processo e la chiamata a Process.Start si blocca. Se eseguo lo stesso servizio dal mio computer Windows 7, il processo viene eseguito e l'ID del processo non viene restituito.

Sono confuso ..

+4

Hai impostato UseShellExecute su falso? Stai reindirizzando la sua uscita? –

risposta

1

E 'possibile che il processo si sta deposizione delle uova sta tentando di indurre la stazione finestra per l'input dell'utente? In tal caso potrebbe bloccarsi ...

Quale processo stai iniziando? Fa parte della piattaforma/OS (come cmd.exe) o qualcosa di personalizzato?

+0

è un processo personalizzato che inizia ad ascoltare su una porta TCP specifica. Ascolta ma non riesco a riportare l'ID di processo al servizio Windows che l'ha avviato. –

5

Ho avuto esattamente lo stesso problema. Per me la chiave era impostare StartInfo.UseShellExecute = false;

0

Dopo un lungo periodo di ricerca di una soluzione per questo, ho trovato le pietre sagge per il mio problema.

Ho creato un nuovo programma basato su WindowsForm, con lo stesso comando Process.Start, quindi viene visualizzata la finestra di dialogo standard "Windows Warning Security" e questo è il motivo per cui funziona.

Dopo aver disattivato "Controllo dell'accesso utente", il servizio di Windows funziona correttamente.

Problemi correlati