Bonjour,

je développe une petite application qui récupère des fichiers XML sur un serveur.
La récupération d'un fichier ce fait en deux étapes :
  • je récupère un premier fichier XML sur le serveur, le parcours pour trouver un code
  • Avec ce code, je récupère le second fichier XML sur le serveur puis je le parcours.



Cela fonctionne, mais c'est assez bancale : Des fois il n'y aucun problème, d'autres fois j'aurais une exception "time out" et encore d'autres fois la récupération sera terriblement lente ( mais sans exception ).
Le problème ne peut pas venir du serveur.

Donc je me dis que cela vient de ma façon de programmer ces récupérations.

Recupère le code dans le premier fichier XML.
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
 
 
   try
            {
                WebClient WC = new WebClient();
                WC.Credentials = CredentialCache.DefaultCredentials;
                System.IO.Stream s = WC.OpenRead(Lien vers le premier fichier);
                System.IO.StreamReader sr = new System.IO.StreamReader(s);
                string resultSearchXml = sr.ReadToEnd();
 
                 //Parcours fichier XML
                int code = leCodeTrouvé
 
                s.Dispose();
                sr.Dispose();
 
                s = null;
                sr = null;
            }
            catch (WebException ex)
            {
                MessageBox.Show(ex.ToString());
            }
Une fois que j'ai trouvé le code dans le premier fichier XML, j'appelle une méthode qui va parcourir le second fichier.

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
 
  try
            {
                WebClient WC = new System.Net.WebClient();
                WC.Credentials = CredentialCache.DefaultCredentials;
                System.IO.Stream s = WC.OpenRead(lien vers le second fichier + leCode);
                System.IO.StreamReader sr  = new System.IO.StreamReader(s);
 
                string resultSearchXml = sr.ReadToEnd();
 
 
 
                //Parcours du second fichier XML
 
                s.Dispose();
                sr.Dispose();
                s = null;
                sr = null;
 
 
            }
            catch (WebException ex)
            {
                MessageBox.Show(ex.ToString());
            }

Est-ce que ça vient de mon code ? Avez-vous une idée ?
Merci d'avance !