Escribo un servicio de Windows que necesita conservar algunos datos durante los reinicios/reinicios del servicio. Actualmente estoy escribiendo los archivos en un directorio devuelto por Application.UserAppDataPath
, pero eso no parece darme una respuesta consistente. ¿Cómo debo determinar el lugar correcto para escribir los datos?¿En qué parte del sistema de archivos debe mantenerse un servicio de Windows?
Respuesta
Depende si su servicio se ejecuta con la cuenta del sistema o con una cuenta de usuario específica.
Sistema cuenta. Almacene los archivos en la carpeta CommonApplicationData:
cadena pathForSystem = Environment.GetFolderPath (Environment.SpecialFolder.CommonApplicationData);
Cuenta de usuario. Almacene los archivos en la carpeta ApplicationData:
cadena pathForUser = Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData);
Si quiere que sea coherente (es decir, es independiente del usuario) intente Application.CommonAppDataPath
.
Estoy de acuerdo. Si el servicio se está ejecutando como LocalSystem, tiene sentido almacenar datos en la ruta de datos independiente del usuario. –
Application.CommonAppDataPath se incluye en System.Windows.Forms.dll. ¿Realmente necesito formularios de referencia del servicio de Windows? – qub1n
Si esto es un servicio .NET Creo que se podría utilizar IsolatedStorage
- 1. ¿qué parte del archivo ELF debe cargarse en la memoria?
- 2. debe mantenerse abierta o tomas derribado
- 3. ¿De qué parte del sistema de archivos se cargó mi clase Java?
- 4. Sistema de archivos en memoria para Windows
- 5. ¿En qué directorio se ejecuta un servicio de Windows?
- 6. Despliegue del servicio de Windows
- 7. ¿Qué tipo de excepción debe arrojarse con un Servicio WCF?
- 8. Comportamiento de archivos temporales de Windows: ¿el sistema los elimina?
- 9. Escuchante del sistema de archivos
- 10. Ejecución de msiexec desde un servicio (cuenta del sistema local)
- 11. Servicio de Windows w/FileSystemWatcher en C#
- 12. ¿Qué valor debe tener el servicio Nombreprincipal?
- 13. de aplicación del sistema de archivos básica
- 14. ¿Qué ruta del sistema de archivos usa Context.openFileOutput() de Android?
- 15. Node.js y sistema de archivos en Windows - Error de EBUSY
- 16. Tamaño del bloque del sistema de archivos
- 17. WCF Seguridad en un servicio de Windows
- 18. Sistema de archivos virtual con C/C++ en Windows
- 19. Alojamiento del servicio WCF en el servicio de Windows
- 20. Captura de pantalla del proceso en el Servicio de Windows
- 21. Símbolo del sistema interactivo como SERVICIO DE RED
- 22. de archivos por lotes para comprobar si un servicio del sistema se está ejecutando
- 23. ¿Debe renombrar un proyecto en Eclipse también cambiar el nombre de la carpeta del proyecto en el sistema de archivos?
- 24. ¿Cuánto debe saber un programador sobre el administrador del sistema?
- 25. ¿Qué debe devolver un servicio JSON por error/error?
- 26. Servicio de Windows Elija Usuario o Cuenta del sistema en la Instalación
- 27. Diario del sistema de archivos de Android
- 28. PHP detección de la codificación del sistema de archivos
- 29. vigilante del sistema de archivos y archivos de gran tamaño
- 30. filesystemwatcher como servicio de Windows?
Cada servicio se ejecuta con privilegios de algunos usuarios. ¿No deberían almacenarse los datos en applicationData del usuario (supongo que se refiere a él como Application.UserAppDataPath)? ¿Cuál es el problema con esta ubicación? –
El servicio se está ejecutando como LocalSystem. Sin embargo, la cuenta LocalSystem no tiene su propio directorio en "Documentos y configuraciones"; en mis pruebas usa el directorio LocalService, pero recibimos informes de que el servicio algunas veces almacena datos en un lugar y luego los busca en otro. En el registro, parece que la ruta AppData de LocalSystem es% USERPROFILE% \ Application Data, por lo que parece que% USERPROFILE% no nos está dando una respuesta coherente. –