Tentativo di ottenere un servizio Windows per eseguire un eseguibile su un'unità condivisa
-
02-07-2019 - |
Domanda
Ho c # che verrà eseguito in un servizio Windows. Sto cercando di utilizzare le classi Process e ProcessStartInfo per eseguire un eseguibile. Se l'eseguibile si trova sull'unità locale, nessun problema. Tuttavia, devo eseguire un eseguibile su un'unità condivisa. Ho provato a usare la notazione UNC (//machine_name/share_name/directory/runme.exe), ma il processo sembra bloccarsi. Il servizio e l'unità condivisa sono su Windows XP. Qualcuno ha affrontato questo problema prima?
Soluzione
L'account in esecuzione sul tuo servizio probabilmente non dispone dell'autorizzazione per accedere all'unità condivisa. Prova a configurarlo per l'esecuzione come utente con l'autorizzazione alla rete tramite l'applet dei servizi. Fai clic con il pulsante destro del mouse sul servizio, scegli le proprietà e imposta l'account nella scheda di accesso.
Altri suggerimenti
Quale account esegue il servizio?
LocalSystem consentirà solo l'accesso al file system locale. Se desideri accedere a una risorsa di rete, dovrai eseguire il servizio come utente di dominio o di rete.
Dai un'occhiata a questo: http://forums.microsoft .com / MSDN / ShowPost.aspx PostID = 471.168 & amp;? SiteID = 1
Questo dovrebbe aiutare.
Se l'app sull'unità condivisa è un'app .Net, assicurarsi che abbia un'affidabilità sufficiente.