Ho un servizio Windows (C#) installato su un server che avvia ogni 10 minuti un file eseguibile (C#) per elaborare alcune immagini da una directory a un'altra. Nessuna interazione è richiesta con nessun utente. Tuttavia, poiché il file eseguibile come finestra di output, per eseguire il servizio devo abilitare il servizio "Consenti al servizio di interagire con il desktop" che è considerato come insecure and bad practice. Come andrei su questo problema? Mi piace avere l'eseguibile separato dal mio servizio, perché le finestreAlternativa a "Consenti al servizio di interagire con il desktop"?
- rende più facile per eseguire il debug e non richiede un completo redeploy servizio di Windows.
- volte uso le stesse finestre servizio di lanciare diversi file eseguibili a diversi intervalli (ma tutti legati allo stesso progetto ).
EDIT:
Quando l'interazione con il desktop non è abilitato, l'applicazione di console non sono eseguite correttamente e il seguente errore appare all'interno i registri di Windows:
Faulting application myapp.exe, version 1.0.0.0, time stamp 0x4b8304c3,
faulting module KERNEL32.dll, version 6.0.6002.18005, time stamp 0x49e03821,
exception code 0xc0000142, fault offset 0x00009eed, process id 0x10ec,
application start time 0x01cab736950a64b5.
volta l'interazione desktop è abilitata, l'applicazione viene eseguita normalmente.
Qualche idea?
Grazie mille per il vostro tempo.
È per Vista e versioni successive? –
La parte di debug non è una buona ragione. Potresti avere un eseguibile e il servizio utilizza un assembly comune che contiene tutte le funzionalità. –
Sì, il servizio Windows esegue Windows Server 2008 Web Edition. Windows Service ed eseguibile vengono generati con Visual Studio 2008 rispetto a con .NET Framework 3.5 – jdecuyper