Bonjour,

J'ai développé un service Windows dont le but est d'aller controler dans une base MySql si des comptes d'utilisateur d'une application Web sont arrivés à echéance. J'utilise donc un Timer dont l'intervalle est reglé à 10 sec pour mes tests, et l'événement Elapsed du Timer qui va faire les vérifications dans la base. J'ai installé le service sur ma machine, et ca fonctionne, avec les événements écrits dans le journal, je vois qu'il me lance bien la procédure toutes les 10 sec. Mais en essayant de l'installer sur le serveur, plus moyen. J'ai le message que le service est lancé, mais après plus rien, comme si il ne passait plus dans Elapsed....Voici le code que j'ai épuré pour les tests :

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
53
54
55
56
57
58
        protected System.Timers.Timer tCheckBase ;
 
        public ClodeDemoAccount()
        {
            try
            {
 
                InitializeComponent();
 
                if (!EventLog.SourceExists("ServiceCloseAccount"))
                {
                    EventLog.CreateEventSource("ServiceCloseAccount", "JrnlCloseAccount");
                }
 
                jEvent.Source = "ServiceCloseAccount";
            }
            catch ( Exception ex )
            {
                jEvent.WriteEntry(ex.Message);
            }
 
        }
 
        protected override void OnStart(string[] args)
        {
            try
            {
                tCheckBase = new System.Timers.Timer();
                tCheckBase.Interval = 10000;
                tCheckBase.Elapsed += new System.Timers.ElapsedEventHandler(tCheckBase_Elapsed);
                tCheckBase.Enabled = true;
                jEvent.WriteEntry("Service démaré");
            }
            catch (Exception ex)
            {
                jEvent.WriteEntry(ex.Message);
            }
 
        }
 
        protected override void OnStop()
        {
            try
            {
                tCheckBase.Enabled = false;
                jEvent.WriteEntry("Service arreté");
            }
            catch (Exception ex)
            {
                jEvent.WriteEntry(ex.Message);
            }
 
        }
 
        private void tCheckBase_Elapsed(object sender, EventArgs e)
        {
            jEvent.WriteEntry("Lancement de la procédure");
        }
Merci d'avance por votre aide.