J'écris un service Windows qui doit conserver certaines données lors des redémarrages/redémarrages du service. Actuellement, j'écris les fichiers dans un répertoire retourné par Application.UserAppDataPath
, mais cela ne semble pas me donner une réponse cohérente. Comment devrais-je déterminer le bon endroit pour écrire les données?Sur quel système de fichiers un service Windows doit-il conserver ses données?
Répondre
Cela dépend si votre service est en cours d'exécution avec le compte système ou avec un compte d'utilisateur spécifique.
système de compte. Stockez les fichiers dans le dossier CommonApplicationData:
chaîne pathForSystem = Environment.GetFolderPath (Environment.SpecialFolder.CommonApplicationData);
compte compte. Stockez les fichiers dans le dossier ApplicationData:
chaîne pathForUser = Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData);
Si vous voulez que ce soit cohérent (c'est-à-dire indépendant de l'utilisateur), essayez Application.CommonAppDataPath
.
Je suis d'accord. Si le service s'exécute en tant que LocalSystem, il est logique de stocker des données dans le chemin de données indépendant de l'utilisateur. –
Application.CommonAppDataPath est inclus dans System.Windows.Forms.dll. Ai-je vraiment besoin de référence Winforms de Windows Service? – qub1n
Si cela est un service .NET Je pense que vous pouvez utiliser IsolatedStorage
- 1. créer un service sur windows
- 2. Système de fichiers en mémoire pour Windows
- 3. Quel système de licence sur étagère répondra à mes besoins?
- 4. service de retard au démarrage du système
- 5. Amélioration de l'accès au système de fichiers sur un serveur de fichiers distant
- 6. Décalages de fichiers sur Windows
- 7. Qu'est-ce qu'un système de fichiers de base de données?
- 8. Cache système Windows et fichiers volumineux
- 9. Service Windows écrit des fichiers sur le partage réseau
- 10. Comment faire un service Windows sur un utilisateur spécifié?
- 11. Dans quel répertoire un service Windows s'exécute-t-il?
- 12. Quel est le délai d'attente pour démarrer un service Windows?
- 13. Système de fichiers TreeView
- 14. Quel cadre de service Web?
- 15. propagation de variables d'environnement sur système Windows
- 16. Avantages de conserver un protocole pour un modèle de données
- 17. IE7 et fichiers XML sur le système de fichiers
- 18. Conserver un journal de l'heure d'accès aux fichiers
- 19. Système de fichiers TreeView
- 20. Installer le service Windows sur Windows Vista
- 21. Windows Activation Service sur Windows 2003
- 22. .NET: mise en cache dans une base de données ou un système de fichiers avec CacheDependency
- 23. Base de données pour un système embarqué
- 24. Quel est le meilleur moyen de conserver les données dans une application Java Desktop?
- 25. Comment enregistrer un service Windows pendant l'installation?
- 26. Comment utiliser Windows Search Service au lieu de l'ancien service d'indexation pour indexer des fichiers?
- 27. Méthode préférée pour mapper un système de fichiers distant dans Windows?
- 28. API pour lister les fichiers sur un périphérique Windows Mobile
- 29. Quel est le meilleur emplacement pour conserver le fichier de configuration du programme sous WINDOWS?
- 30. Hébergement d'un service WCF (mex endpoint) dans un service Windows sur Windows 2008
Chaque service est exécuté avec les privilèges de certains utilisateurs. Les données ne doivent-elles pas être stockées dans applicationData de l'utilisateur (je suppose que vous l'appelez Application.UserAppDataPath)? Quel est le problème avec cet endroit? –
Le service s'exécute en tant que LocalSystem. Toutefois, le compte LocalSystem n'a pas son propre répertoire dans "Documents and Settings"; Dans mes tests, il utilise le répertoire LocalService, mais nous recevons des rapports indiquant que le service stocke parfois des données à un endroit et les recherche ensuite dans un autre. Dans le registre, il semble que le chemin AppData de LocalSystem est% USERPROFILE% \ Application Data, il semble donc que% USERPROFILE% ne nous donne pas de réponse cohérente. –