Bonjour,
Je réalise en ce moment un service windows pour la gestion de récupération de variables OPC.
Enfin bref, dans mon service, je lance un thread dans le onstart() qui va s'occuper de tous le reste.
La première fonction exécuté par le thread va permettre (normalement) de vérifier la présence du fichier d'options créé par un autre programme.
Il test son existance et s'il existe on regarde si sa taille est supérieur à 0 (en clair s'il contient quelque chose).
La vérification de la présence du fichier marche sans aucun soucis.
Par contre, la création d'un FileStream m'amène directement dans le catch avec : "L'accès au chemin .... est refusé".
Et là j'ai aucune idée de ce à quoi c'est dû.
Le test de l'existance qui bloque un autre accès ?
Le thread ne peut avoir les droits sur un fichier ?
Voici mon code si vous trouvez le problème ça m'aiderai beaucoup.
Comme vous pouvez le voir, j'ai déjà eu recours à un boolean car sinon je ne pouvais pas récupérer le fichier dans le dataset.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 public ServiceOPC() { t = new Thread(new ThreadStart(VerifOptions)); } // Fonction exécuté au démarrage du service protected override void OnStart(string[] args) { EventLog.WriteEntry("Lancement du service OPC-Reporting"); t.Start(); } // Fonction de vérification de la présense du fichier de configuration public void VerifOptions() { try { if (System.IO.File.Exists("c:\\options.xml")) { bool fic = false; FileStream fs = new FileStream("c:\\options.xml", FileMode.Open, FileAccess.Read); if (fs.Length != 0) { fic = true; } fs.Close(); if (fic) { DSoptions.ReadXml("options.xml"); RecupOptions(); } else { Thread.Sleep(10000); VerifOptions(); } } else { Thread.Sleep(10000); VerifOptions(); } } catch (Exception ex) { string message = ex.Message; EventLog.WriteEntry("Problème avec le fichier d'options : " + message); } }
D'avance merci.
Partager