Bonjour,

je débute dans les services web et j'ai le message d'erreur suivant :
The request failed with HTTP status 404: Not Found
J'ai un peu regardé sur le net et je n'ai pas trouvé grand chose qui pourrait m'aider.
Je lance 2 Visual Studio 2010, l'un avec mon service web démarré en F11 et l'autre mon application client.
Parfois, tout fonctionne correctement et j'ai bien mes points d'arrêts fonctionnels dans mon service web, et parfois (le plus souvent) cela ne fonctionne pas du tout et le client bloque avec le message d'erreur cité plus haut.
Mon service web sert à faire du transfert de fichier.

Voici le code côté serveur :
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
 
 
        [WebMethod()]
        public void UploadProgram(program prog, byte[] buffer)
        {
            cDB.UploadProgram(prog, buffer);
        }
 
        //***************************************************************************************************
        public void UploadProgram(program prog, byte[] buffer)
        {
 
            MemoryStream memFile = new MemoryStream(buffer);
 
            string sqlInsert = "INSERT INTO Program (Code, Name, Version, RegionalConcept, BlobZip) " +
                               "Values (@Code, @Name, @Version, @RegionalConcept, @BlobZip)";
 
            SqlCommand insertCommand = new SqlCommand(sqlInsert, cnn);
 
            insertCommand.Parameters.Add(new SqlParameter("@Code", SqlDbType.Char,30)).Value = prog.Code;
            insertCommand.Parameters.Add(new SqlParameter("@Name", SqlDbType.Char,100)).Value = prog.Name;
            insertCommand.Parameters.Add(new SqlParameter("@Version", SqlDbType.Char,10)).Value = prog.Version;
            insertCommand.Parameters.Add(new SqlParameter("@RegionalConcept", SqlDbType.Int)).Value = prog.RegionalCode;
            insertCommand.Parameters.Add(new SqlParameter("@BlobZip", SqlDbType.VarBinary)).Value = prog.BlobZip;
 
            insertCommand.ExecuteNonQuery();
 
        }
Voici le code côté client :

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
 
        private void button1_Click(object sender, EventArgs e)
        {
            openFileDialog.Multiselect = true;
            openFileDialog.ShowDialog();
 
            MonServiceWeb.DataManagement monWS = new MonServiceWeb.DataManagement();
 
            try
            {
 
                XmlDocument doc = new XmlDocument();
 
                foreach (string fileName in openFileDialog.FileNames)
                {
                    MonServiceWeb.program prog = new MonServiceWeb.program();
 
                    doc.Load(fileName);
                    XmlNode userNode = doc.SelectSingleNode("//updates/update/name");
                    prog.Code = userNode.InnerText.Replace("series:", "");
                    userNode = doc.SelectSingleNode("//updates/update/description");
                    prog.Name = userNode.InnerText;
                    userNode = doc.SelectSingleNode("//updates/update/version");
                    prog.Version = userNode.InnerText;
 
                    prog.RegionalCode = 1;
                    userNode = doc.SelectSingleNode("//updates/update/filename");
                    string filePath = fileName.Replace(Path.GetFileName(fileName), userNode.InnerText);
                    prog.BlobZip = File.ReadAllBytes(filePath);
 
                    monWS.UploadProgram(prog, prog.BlobZip);
                }
            }
 
            finally
            {
                monWS.Dispose();
            }
 
        }
Si l'un d'entre vous à une idée de comment résoudre le problème, je suis preneur.

Edit : Petit point important à préciser! Etrangement, c'est sur la dernière partie du code client que le programme bloque :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
monWS.UploadProgram(prog, prog.BlobZip);
La création du WebService se passe sans problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
            MonServiceWeb.DataManagement monWS = new MonServiceWeb.DataManagement();
 
                    MonServiceWeb.program prog = new MonServiceWeb.program();