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

Framework .NET Discussion :

WebException que je ne comprends pas


Sujet :

Framework .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 22
    Par défaut WebException que je ne comprends pas
    Bonjour à tous
    j'ai besoin de pouvoir piloter mon modem. En premier lieu j'effectue une connexion / déconnexion.

    avec le code suivant :

    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
     
    //partie deconnexion
    HttpWebRequest oWRequest = (HttpWebRequest)HttpWebRequest.Create("http://192.168.1.1/apply.cgi");
    oWRequest.Method = "POST";
    oWRequest.ContentType = "application/x-www-form-urlencoded";
    oWRequest.Credentials = new NetworkCredential("admin", "admin");
    ASCIIEncoding encoding = new ASCIIEncoding();
    encoding = new ASCIIEncoding();
    byte[] loginDataBytes = encoding.GetBytes("submit_button=submit_button=Status_Router&submit_type=disconnect&change_action=gozila_cgi&wan_proto=dhcp");
    oWRequest.ContentLength = loginDataBytes.Length;
    Stream stream = oWRequest.GetRequestStream();
    stream.Write(loginDataBytes, 0, loginDataBytes.Length);
    stream.Close();
    HttpWebResponse oWResponse = (HttpWebResponse)oWRequest.GetResponse();
     
    //partie connexion
    oWRequest = (HttpWebRequest)HttpWebRequest.Create("http://192.168.1.1/apply.cgi");
    oWRequest.Method = "POST";
    oWRequest.ContentType = "application/x-www-form-urlencoded";
    oWRequest.Credentials = new NetworkCredential("admin", "admin");
    ASCIIEncoding encoding = new ASCIIEncoding();
    encoding = new ASCIIEncoding();
    loginDataBytes = encoding.GetBytes("submit_button=Status_Router&submit_type=connect&change_action=gozila_cgi&wan_proto=dhcp");
    oWRequest.ContentLength = loginDataBytes.Length;
    stream = oWRequest.GetRequestStream();
    stream.Write(loginDataBytes, 0, loginDataBytes.Length);
    stream.Close();
    Exception ici -> HttpWebResponse oWResponse = (HttpWebResponse)oWRequest.GetResponse();
    ce code fonctionne parfaitement en pas à pas. Mais en exécution normale, il renvoie une WeException et me dit La connexion sous-jacente a été fermée : La connexion a été interrompue de manière inattendue.
    Même en plaçant entre les 2 parties une tempo de 25 secondes çe fait la même chose.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Thread pause;
    pause = System.Threading.Thread.CurrentThread;
    pause.Join(25000);

  2. #2
    Membre éclairé
    Étudiant
    Inscrit en
    Janvier 2004
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2004
    Messages : 279
    Par défaut
    J'ai exactement le même problème que toi.

    En mode debug avec points d'arrêts, j'arrive à recevoir (parfois sans erreur) une "réponse", mais sans les points d'arrêts, en mode normal, il me renvoie la meme erreur que toi:

    The underlying connection was closed: An unexpected error occurred on a receive.

    Quelqu'un aurait une idée ?

  3. #3
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    la dernière fois que j'ai eu ce problème, c'est parce que le ContentLength était inférieur au nombre d'octets écrits dans le Write.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  4. #4
    Membre éclairé
    Étudiant
    Inscrit en
    Janvier 2004
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2004
    Messages : 279
    Par défaut
    La taille est correcte de mon coté. Si j'allonge ou je rétrécis cette dernière, ça bloque à sw.Close(); et me déclare déja une mauvaise manipulation à cet endroit.
    (sw pour StreamWriter).

    Lorsque la taille ContentLenght est fixée correctement, ça passe et ça bloque plus loin.

Discussions similaires

  1. std ::vector [erreur que je ne comprend pas]
    Par aaronw dans le forum SL & STL
    Réponses: 8
    Dernier message: 05/03/2006, 21h00
  2. [Débutant] Message d'erreur que je ne comprends pas
    Par Le Furet dans le forum Langage
    Réponses: 2
    Dernier message: 25/02/2006, 17h37
  3. [PostGreSQL] une erreur que je ne comprends pas
    Par flo78 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 02/02/2006, 10h18
  4. [thread][methodologie]Quelque chose que je ne comprends pas!
    Par norkius dans le forum Général Java
    Réponses: 5
    Dernier message: 16/03/2005, 14h01
  5. [Rave] un message que je ne comprends pas
    Par Clotilde dans le forum Rave
    Réponses: 2
    Dernier message: 30/09/2003, 21h46

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