2010-09-01 8 views
11

Ho un servizio Windows in esecuzione sul mio computer locale. È configurato per l'esecuzione in NT AUTHORITY \ NETWORK SERVICE. Il programma accede a un'unità di rete condivisa su un computer nella stessa sottorete. Quella directory condivisa ha Tutti impostato su Controllo completo.Servizio Windows non può accedere alla condivisione di rete

Sto diventando False su File.Exists, ma il file esiste. Sono certo che questo è un problema di autorizzazione. Sto dimenticando qualcosa? Nota, il computer con l'unità condivisa non si trova su un dominio.

+7

non abbiamo niente da dire sui server deminkin qui. prova un errore del server. –

risposta

15

soluzione è stata trovata qui: https://serverfault.com/questions/177139/windows-service-cant-access-network-share

Il fatto che la macchina con l'unità condivisa non è in un dominio è dove il vostro problema principale è. Per far funzionare tutto questo dovrai configurare il servizio Windows per l'esecuzione come utente specifico, quindi dovrai creare un utente identico sul sistema remoto con la stessa password. Potrebbe funzionare allora.

Il problema deriva dal fatto che per accedere a una macchina non in un dominio, è necessario accedere a quella macchina utilizzando un account esistente su quella macchina. L'account della macchina per qualcos'altro sicuramente non esisterà su quella macchina locale. Con la creazione di un utente con una password identica identica, potrebbe essere in grado ottenere l'accesso al lavoro."

-sysadmin1138

ho creato account identici su entrambe le macchine e l'account di servizio è stato in grado di accedere alla condivisione Drive. Avere i server sullo stesso dominio è una soluzione migliore, quindi ci sto lavorando, ma funzionerà nel frattempo

+0

Cosa succede se non riesco a toccare il server remoto. C'è un'alternativa? –

2

L'impostazione delle autorizzazioni di condivisione non è sufficiente. Impostare anche le autorizzazioni NTFS in modo adeguato, quindi funzionerà. Tutto il controllo completo sulla condivisione significa che tutti possono passare attraverso la rete fino alla radice della condivisione, ma da quel momento in poi i diritti NTFS verranno utilizzati per determinare cosa è consentito e cosa no.

+0

Dove posso modificare le autorizzazioni NTFS? Ho impostato il controllo completo su Everyone in entrambe le autorizzazioni di condivisione e la scheda Protezione. –

+0

Le autorizzazioni NTFS sono nella scheda di sicurezza. Prenditi cura delle autorizzazioni di negazione in "Avanzate". Escludono qualsiasi altra autorizzazione per un determinato utente. Se un utente è membro di più gruppi, si applicano anche i diritti più restrittivi. Le autorizzazioni ACL sono davvero una cosa difficile. Sono anche abbastanza sicuro che ci sia qualcosa di sbagliato lì. Controllate anche il livello a cui si applicano le autorizzazioni ("Questa cartella, sottocartella e file"). Sono anche visibili solo nella scheda avanzata. Spero che sia d'aiuto. Le autorizzazioni valide per la scheda consentono di vedere quali autorizzazioni ha (eventualmente) un utente. – jdehaan

5

Brian T era corretto, ma vorrei aggiungere qualcosa. questo problema anche se il servizio era in esecuzione sullo stesso DOMINIO \ Utente. Il nostro servizio stava provando a scrivere un file su una cartella/unità condivisa ed è stato configurato nel onfig.xml in questo modo: I:/percorso/su/file/su/scrittura.

Ma quando abbiamo modificato la configurazione per utilizzare l'indirizzo IP della rete anziché la lettera di unità, siamo riusciti a risolvere il problema. Tuttavia la sintassi cambiato un po ':

\\ xxx.xxx.xx.xx \ percorso \ a \ la \ cartella \ a \ scrivere

Spero che questo aiuti tutti coloro che ancora non hanno risolto il problema

+0

questa soluzione ha funzionato per me –