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

Services Web Discussion :

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


Sujet :

Services Web

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5
    Points : 4
    Points
    4
    Par défaut The underlying connection was closed: An unexpected error occurred on a receive
    Bonjour à tous,

    Je développe un web service(A) en .net 4 Windows serveur 2003 (VM) qui reçoit des infos d'un client x et qui doit les retransmettre vers un autre web service(B) développé en Gsoap sous linux (distro inconnu) aussi en VM. Je sais juste que Apache (ou autre) n'est pas installé sur cette machine.

    Lors d'un premier appelle du web service B par le web service A aucun souci, réponse correcte. Au second appelle et les suivants j'obtiens lors de la réponse

    comme message dans l'exception
    The underlying connection was closed: An unexpected error occurred on a receive.
    et dans InnerException
    System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host.
    Je précise quand même que sur le serveur linux, on me confirme bien que les données sont transmises correctement sauf exception.
    Un redémarrage iis (via iis manager ou même le service nt) ne change rien.
    Le reboot de la machine linux permet de débloquer la situation (pour un appelle forcément )

    Chose étonnante,
    en debug ou même sans (iis local) sur ma machine de dev vers le même serveur (linux) tout fonctionne parfaitement !

    Autre indice, il y a sur la machine Windows 2003 un service NT qui communique avec un autre web service toujours sur le même serveur linux, et la pouf même comportement et même erreur

    En parcourant le web je suis bien tombé sur un workaround qui consiste à mettre le KeepAlive à false, mais cette solution ne me satisfait pas vraiment.

    1. Je ne comprends pas l'erreur donc je ne vais pas implémenter un WA que je ne comprends pas
    2. J'implémente un comportement spécifique (adieu l'évolutivité) sur une technique qui se veut open
    3. Mon code marche sur ma machine, je ne vois pas pourquoi il ne marcherait pas ailleurs


    J’espère vraiment que quelqu'un aura au moins piste à me donner ou peut-être même une solution (qui sait).

    Je vous remercie d'avance.

    petite précision sur l'env de dev.
    Win Xp sp3 up to date
    IIS 5.1
    VS2010 Pro

  2. #2
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Salut,

    J'ai pu constater que dans certains cas les messages d'erreurs sur des services WCF ne sont pas explicites. En l'état, ce message ne permet pas de comprendre le problème.

    La dernière fois que j'ai eu ce message c'est parce que une des propriétés d'un objet, une énumération, n'était pas initialisée. Pour trouver l'erreur j'ai dû retirer mes objet un à un. Quand je suis tombé sur l'objet qui posait problème, j'ai dû retirer les propriétés une à une...

    Pour isoler le problème, je te suggère de passer par des outils tiers: Fiddler (pour analyser, rejouer les trames), WcfTestClient.exe (dans C:\Program Files (x86)\Microsoft Visual Studio <Version>\Common7\IDE), ServiceTraceLayer. Trouve une config qui marche et rejoue plusieurs scénarios.

    Bon courage.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci pour tes conseilles. Je vais tester cela asap.

    Et merci aussi pour la mise en page.

    ++

  4. #4
    Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Re all

    Voila, j'apporte un peu d'eau au moulin,

    J'ai développé un petit client très basique (.net 2.0) qui balance 1000 trames identiques, et, va attaquer le web service B(under linux). Avec Fiddler, j'ai analysé les trames et la grosse surprise, 304/1000 passent avec succès, le reste me renvoie
    Result 504
    (Fiddler] ReadResponse() failed: The server did not return a response for this request.).
    Sur le serveur linux, j'ai lancé tcpDump pour voir ce qui arrive sur le serveur, les traces sont en courts d'analyse...
    Autre précision, les serveur se trouvent derrière un proxy. Je vais voir si je ne sais pas contourner ce dernier momentanément.

    Bien à vous.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Je confirme.
    J'ai eu le même problème parce que certaines propriétés de type énumération, datetime n'étaient pas initialisées

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/06/2015, 17h27
  2. Réponses: 1
    Dernier message: 30/03/2013, 14h53
  3. Réponses: 2
    Dernier message: 15/09/2010, 09h11
  4. Réponses: 0
    Dernier message: 17/05/2010, 17h48
  5. Réponses: 3
    Dernier message: 27/07/2006, 17h01

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