Domanda

Ho un servizio di Windows impostato per copiare i file da una directory locale ad una condivisione Samba.

Il servizio si collega tramite un percorso UNC al server (cioè \ remoteserver \ directory_condivisa).

Ho effettuato il login come utente con cui il servizio è in esecuzione, ed è stato in grado di entrambi i file di copia e creare file nella condivisione di samba, utilizzando il percorso UNC.

Tuttavia, quando si esegue il servizio che ottengo io eccezioni che suggeriscono un errore di login. Ho eseguito monitor di processo su quella scatola, a guardare il servizio e posso vederlo trovare il percorso UNC, ma ottenere un errore di accesso quando si cerca di scrivere alla condivisione.

Questa è usando plain vanilla chiamata .net System.IO.File.Copy.

Non capisco gli errori, come quando connesso con lo stesso utente sono in grado di copiare e creare file nella condivisione.

Tutte le idee?

Modifica: text eccezione

  

Errore nel ciclo di elaborazione principale   (DoWork ()): Errore durante l'accesso: sconosciuto   nome utente o password.

     

System.Exception: Errore   MyService.ProcessExportTransferfileDirectories   e valori: D: \ Export,   \ RemoteServer \ intray,   D: \ Export \ Archive --->   System.IO.IOException: Errore durante l'accesso:   nome utente sconosciuto o password.

     

a   System.IO .__ Error.WinIOError (Int32   errorCode, String maybeFullPath) a   System.IO .__ Error.WinIOError () a   System.IO.File.Move (String   SourceFileName, String destFileName)
  a   MyService.Consumer.BusinessLogic.WmsFacade.MoveAndArchiveFile (String   SourceFolder, String TargetFolder,   String archiveFolder, String   rootFolder, LogCategory logCategory,   LogCounter logCounter) --- Fine   stack eccezione interna --- in   MyService.Consumer.BusinessLogic.WmsFacade.MoveAndArchiveFile (String   SourceFolder, String TargetFolder,   String archiveFolder, String   rootFolder, LogCategory logCategory,   LogCounter logCounter) a   MyService.Consumer.BusinessLogic.WmsFacade.ProcessExportTransfer (IDictionary`2   fileDirectories) a   MyService.Core.TimedWorkerProvider.DoWork ()

È stato utile?

Soluzione

E 'finito per essere un problema di autorizzazioni -. Dopo l'esecuzione del servizio come un altro utente che è stato installato sulla quota di samba ha funzionato senza problemi, la copia dei file attraverso

Ancora non capisco perché quando si utilizza un account diverso potrei copiare / creare i file nella condivisione utilizzando Windows Explorer, ma quando il servizio è stato eseguito con lo stesso account che non poteva accedere alla condivisione a tutti: (

Altri suggerimenti

mi sento di raccomandare a mappare un'unità prima e poi fare la copia di file per l'unità mappata invece della condivisione.

È possibile mappare un'unità utilizzando il comando DOS net use. Ad esempio:

System.Diagnostics.Process.Start("net", "use h: \remoteserver\shareddir /User:domian\me password")

Questo dovrebbe risolvere eventuali problemi di accesso.

Uno strumento molto utile nella vostra situazione è monitor di processo . Basta eseguirlo come amministratore e aggiungere il seguente filtro:

Process Name is "your_process.exe" AND Operation is "CreateFile"

Si vedrà informazioni dettagliate sui file il processo sta tentando di utilizzare.

  

Come già detto, quando accedo con il   stesso account che il servizio è   esecuzione come, non ho problemi a copiare   da e per la creazione di file sulla condivisione. -   Oded 1 min fa

Lo si concede l'account utente del servizio è in esecuzione come "Accesso come servizio" autorizzazioni nel criterio di protezione locale ??

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top