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 Discussion :

Remoting : System.Runtime.Remoting.RemotingException: Underlying socket was closed


Sujet :

Développement

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3
    Par défaut Remoting : System.Runtime.Remoting.RemotingException: Underlying socket was closed
    Bonjour,

    Quelqu'un a t il une idée d'ou peut venir cette erreur :
    Remoting : System.Runtime.Remoting.RemotingException: Underlying socket was closed

    J'utilise visual studio .net framework 1.1

    Mon application fait la chose suivante :

    J'ai crée un service windows qui tourne, et des fois il déclanche des event.(delegate)
    Ces event sont reconnus par une application cliente et mon client qui une app winform affiche par exemple un message box.

    Lors du cas ou plusieurs event se déclanchent en meme temps (on dirait !!), j'ai cette erreur :
    System.Runtime.Remoting.RemotingException: Underlying socket was closed
    Server stack trace:
    at System.Runtime.Remoting.Channels.SocketHandler.ReadFromSocket(Byte[] buffer, Int32 offset, Int32 count)
    at System.Runtime.Remoting.Channels.SocketHandler.BufferMoreData()
    at System.Runtime.Remoting.Channels.SocketHandler.Read(Byte[] buffer, Int32 offset, Int32 count)
    at System.Runtime.Remoting.Channels.SocketHandler.ReadAndMatchFourBytes(Byte[] buffer)
    at System.Runtime.Remoting.Channels.Tcp.TcpSocketHandler.ReadVersionAndOperation(UInt16& operation)
    etc........

    ensuite : System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it


    Une idée ??

    Merci. Mélanie.

  2. #2
    Membre Expert
    Avatar de Aramis
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Juin 2002
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Consultant en sécurité

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 493
    Par défaut
    Bonsoir,

    on peut dire ce qu on veut de Microsoft mais en ce qui concerne .NET ils ont bien fait leur travail (sous Windows, comme sous Linux d ailleurs) - ici l environement vous donne toutes les infos. A mes yeux l erreur que vous avez s explique facilement. Vos evenements semblent attendre un Socket et/ou bien un objet de type Asynchronous CallBack... typique de la programmation de socket Asynchrone (beurk!). Neanmoins, a un moment ou a un autre votre application ferme ce socket peu etre avec un code du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      Socket mysocket;
      mysocket.Shutdown(both);
      mysocket.Dsipose();
    Maintenant fermer le Socket et etc. ne devrait pas poser de probleme, mais d apres ce que vous decrivez c est toujours le(s) meme(s) objet(s) qui est/sont utilise(s). Par consequent, des que l un des evenements (ou bien methodes) ferme le Socket.. catastrophe

    Il me semble que l une de mes eleves a eu ce probleme... il semblerai qu elle ai ecrite l application pour une seule connexion a la fois. Par consequent, il serai juste de demander si votre application a ete developpe pour surpporter plusieurs clients simultanement.

    Quant a l erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it
    Celle ci est levee par client, n est ce pas? Si c est le cas, cela veut dire que l application distance/server n existe pas ou plus. En gros, si le serveur devait ecouter sur le port 2048.. eh bien cette erreur arrive lorsqu il n y a pas d application qui ecoute sur ce port.

    Pour terminer, je dirais qu une recherche sur la MSDN vous fournira surement des exemples de code robustes, ainsi que des explications detaillees sur les erreurs.

    Cordialement,

    Ar@mi$

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3
    Par défaut
    Bonjour,

    merci pour ta réponse.

    Dans un premier temps, ce n'est pas moi qui explicitement ferme le socket dans l'application. C'est un objet remote (déclanché par le serveur) qui appelle un event dans mon application et qui déclanche l'ouverture d'un msgbox. Donc il se connecte au client mais apres l'objet remote doit refermer tout seul le socket. ??

    Plusieurs clients arrivent à se connecter en meme temps à l'application.
    Il y a deux choses, le client qui s'execute créé une connexion avec le service par un objet remote, (ca avec plusieurs clients ca marche sur !) pour récupèrer des données.

    la deuxieme chose, c'est le service qui déclanche un event et qui envoie à l'objet remote des informations tout seul, sans que le client ne vienne les chercher. (la je ne sais pas dire si pour ca, plusieurs clients sont acceptés).


    Ca a marché une fois sur un client et apres j'ai eu les deux erreurs à la suite de mon premier message.


    Cette erreur :

    [System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it

    est levée par le client en effet, quand par exemple jarrete le service. Il n'arrive plus a se connecter.


    Mais par contre cette erreur :

    System.Net.Sockets.SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond Server stack trace

    c'est le serveur qui la déclanche, on dirait que c'est quand il ne trouve pas de client(s);
    mais des fois mon client est connecté, le remote ca marche, msgbox sur le client aussi et cette erreur se déclanche alors que des clients ou un seul client sont présent !!

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3
    Par défaut
    Je vais essayer de voir ca plus en détail.
    Parcque la c'est pas tres clair.

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/02/2017, 17h13
  2. Réponses: 2
    Dernier message: 15/09/2010, 09h11
  3. Réponses: 0
    Dernier message: 17/05/2010, 17h48
  4. Réponses: 1
    Dernier message: 15/05/2008, 14h37
  5. Remote System Explorer - problème de caractères
    Par Goulutor dans le forum Eclipse PHP
    Réponses: 1
    Dernier message: 17/08/2007, 14h39

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