IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web avec .NET Discussion :

ServiceWeb qui fonctionne une fois sur 2 [Débutant]


Sujet :

Développement Web avec .NET

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2002
    Messages : 213
    Points : 109
    Points
    109
    Par défaut ServiceWeb qui fonctionne une fois sur 2
    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();
    Mais quelle bordel !

  2. #2
    Membre éprouvé
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Points : 924
    Points
    924
    Par défaut
    Bonjour,

    Je lance 2 Visual Studio 2010,
    Pas besoin, vous pouvez débugger 2 projet dans la meme solution (clic droit sur le projet -> debugger)

    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.
    par défaut, Visual studio peut modifer le port de l'appli web lancé. Vous pouvez définir le port manuellement dans les propriétés du projet. Je pense que cela vous évitera les erreurs 404.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2002
    Messages : 213
    Points : 109
    Points
    109
    Par défaut
    Citation Envoyé par dkmix Voir le message
    Bonjour,


    Pas besoin, vous pouvez débugger 2 projet dans la meme solution (clic droit sur le projet -> debugger)
    Oui effectivement, mais j'ai lancé 2 instances pour pouvoir le wervice web en tant que site de IIS.

    Citation Envoyé par dkmix Voir le message
    par défaut, Visual studio peut modifer le port de l'appli web lancé. Vous pouvez définir le port manuellement dans les propriétés du projet. Je pense que cela vous évitera les erreurs 404.
    Merci! Cela fonctionne et sur la vingtaine d'essai effectué, plus de plantages!
    Par contre, cela fonctionne avec le server web intégré avec VS 2010 mais qu'en est il pour IIS? Car j'ai le problème avec les 2 server :/

    Merci, David
    Mais quelle bordel !

  4. #4
    Membre éprouvé
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Points : 924
    Points
    924
    Par défaut
    Par contre, cela fonctionne avec le server web intégré avec VS 2010 mais qu'en est il pour IIS? Car j'ai le problème avec les 2 server :/
    No sé, je développe toujours avec le serveur web de VS et je déploi en prod après sur un IIS (plus besoin de debug). Je ne sais pas configurer VS / IIS pour faire du "remote" debug

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2002
    Messages : 213
    Points : 109
    Points
    109
    Par défaut
    Citation Envoyé par dkmix Voir le message
    No sé, je développe toujours avec le serveur web de VS et je déploi en prod après sur un IIS (plus besoin de debug). Je ne sais pas configurer VS / IIS pour faire du "remote" debug
    Merci quand même de ton aide

    Malheureusement dans ce cas ci, je n'arrive pas à accéder à IIS, erreur 404, même quand je déploie sur l'IIS d'un hébèregement OVH.

    Edit : j'ai avancé un peu plus loin et c'est spécifiquement sur la fonctione UploadProgram que j'ai l'erreur. Par contre je ne vois pas du tout pourquoi :/
    Mais quelle bordel !

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2002
    Messages : 213
    Points : 109
    Points
    109
    Par défaut
    Voilà, je pense avoir résolu le problème!

    Il fallait ajouter les informations suivantes dans le web.config
    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
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <system.web>
            <!-- maxRequestLength and requestLengthDiskThreshold is in Kilobytes-->
            <httpRuntime maxRequestLength="204800" requestLengthDiskThreshold="204800" />
        </system.web>
        <system.webServer>
            <security>
                <requestFiltering>
                    <!-- maxAllowedContentLength is in Bytes not Kilobytes -->
                    <requestLimits maxAllowedContentLength="204800000" />
                </requestFiltering>
            </security>
        </system.webServer>
    </configuration>
    J'ai trouvé l'information à l'adresse suivante : http://www.codeproject.com/Tips/7259...llow-large-fil
    Mais quelle bordel !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegExp] Test score qui fonctionne une fois sur 2
    Par Albat_r dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/01/2013, 16h25
  2. Lien vers un fichier qui fonctionne une fois sur deux
    Par jmsch dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 17/10/2011, 21h00
  3. Requête qui fonctionne 1 fois sur 100
    Par nicotine002 dans le forum Langage
    Réponses: 1
    Dernier message: 05/08/2006, 11h42
  4. Erreur ASP : le test qui marche une fois sur 2 !
    Par Ryo_san dans le forum ASP
    Réponses: 2
    Dernier message: 04/07/2006, 09h47
  5. Pb : malloc qui marche une fois sur deux .... ?
    Par guillaume_pfr dans le forum C
    Réponses: 14
    Dernier message: 21/07/2003, 09h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo