Pregunta

Tengo un servicio de Windows configurado para copiar archivos desde un directorio local a una parte de la samba.

El servicio se conecta a través de una ruta UNC para el servidor (es decir, \ remoteserver \ SharedDir).

He iniciado la sesión como usuario con la que se ejecuta el servicio, y fue capaz de tanto copiar archivos y crear archivos en la parte de la samba, usando la ruta UNC.

Sin embargo, cuando se ejecuta el servicio que estoy recibiendo excepciones io que sugieren un error de inicio de sesión. He corrido monitor de proceso en ese cuadro, observando el servicio y puedo ver que la búsqueda de la ruta UNC pero conseguir un error de inicio de sesión al intentar escribir en el recurso compartido.

Este es el uso normal de vainilla llamada .net System.IO.File.Copy.

No entiendo los errores, como cuando se haya identificado bajo el mismo usuario que soy capaz de copiar y crear archivos en el recurso compartido.

¿Alguna idea?

Editar: Texto de la excepción

  

Error en el bucle de procesamiento principal   (DoWork ()): Error de inicio: desconocido   nombre de usuario o contraseña incorrecta.

     

System.Exception: Error en   MyService.ProcessExportTransferfileDirectories   y los valores: D: \ Export,   \ ServidorRemoto \ Intray,   D: \ Export \ Archivo --->   System.IO.IOException: Error de inicio:   nombre de usuario desconocido o contraseña incorrecta.

     

AT   System.IO .__ Error.WinIOError (Int32   errorCode, Cadena maybeFullPath) a   System.IO .__ Error.WinIOError () a   System.IO.File.Move (String   SourceFileName, Cadena destFileName)
  a   MyService.Consumer.BusinessLogic.WmsFacade.MoveAndArchiveFile (String   sourceFolder, Cadena targetFolder,   CarpetaArchivo cadena, cuerda   RootFolder, LogCategory logCategory,   LogCounter logCounter) --- Fin de la   seguimiento de pila de excepción interna --- en   MyService.Consumer.BusinessLogic.WmsFacade.MoveAndArchiveFile (String   sourceFolder, Cadena targetFolder,   CarpetaArchivo cadena, cuerda   RootFolder, LogCategory logCategory,   LogCounter logCounter) a   MyService.Consumer.BusinessLogic.WmsFacade.ProcessExportTransfer (IDictionary`2   fileDirectories) a   MyService.Core.TimedWorkerProvider.DoWork ()

¿Fue útil?

Solución

Se terminó siendo un problema de permisos -. Después de ejecutar el servicio como un usuario diferente que fue instalado en la parte de la samba que corrió sin ningún problema, la copia de archivos a través de

Todavía no entiendo por qué cuando se utiliza una cuenta diferente que pudiera copiar / crear archivos en el recurso compartido utilizando el Explorador de Windows, pero cuando el servicio se ejecuta bajo la misma cuenta que no podía acceder al recurso compartido en absoluto: (

Otros consejos

Yo recomendaría asignar una unidad primero y luego hacer la copia de archivos a la unidad asignada en lugar de la acción.

Puede asignar una unidad mediante el comando net use dos. Por ejemplo:

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

Esto debería resolver cualquier problema de inicio de sesión.

Una herramienta muy útil en su situación es monitor de proceso . Sólo tienes que ejecutar como administrador y añadir el siguiente filtro:

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

Podrá ver la información detallada acerca de los archivos de su proceso está intentando utilizar.

  

Como se mencionó, al iniciar sesión con el   misma cuenta que el servicio es   corriendo como, no tengo problemas copiando   a y la creación de archivos del recurso compartido. -   Hace ODED 1 min

¿Se concede a la cuenta de usuario del servicio se está ejecutando como "Iniciar sesión como servicio" permisos en la política de seguridad local ??

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top