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 :

[C#] Pourquoi Response.IsClientConnected renvoie toujours true ?


Sujet :

Services Web

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 38
    Points : 14
    Points
    14
    Par défaut [C#] Pourquoi Response.IsClientConnected renvoie toujours true ?
    Bonjour,

    Je développe un Web Service qui sert à maintenir
    une liste de clients et à envoyer des messages à ceux-ci,
    en fait une sorte de serveur pour des échanges en Peer 2 Peer.
    (Utilisation de méthodes asynchrones côté serveur)

    Pour maintenir une liste de clients cohérente,
    un thread s'occupe de supprimer de la liste les clients qui ne sont plus connectés.

    Comment savoir si un client est connecté?

    Grâce à la méthode IsClientConnected de la classe Response:
    L'objet Response est récupéré au moment où le client
    appelle la méthode WaitMessage() du Web Service (cette méthode renvoie une réponse à un moment indéterminé).

    Le thread parcours donc la liste des clients et teste la propriété
    IsClientConnected, si celle-ci renvoie false ça veut dire que le client n'est plus connecté.

    Sur ma machine, Windows XP - IIS 5.2 ça fonctionne sans aucun problème.

    Le problème c'est que je dois l'installer sur IIS 6.0 et que là,
    Response.IsClientConnected me renvoie toujours true,
    que la connexion soit établie ou non :-S.

    La liste des clients est stockée dans un objet Application.

    Quelqu'un aurait - il une idée sur la cause du problème?
    Ou peut-être une idée pour pouvoir détecter qu'un client
    n'est plus en attente de la réponse?

    Merci

  2. #2
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 38
    Points : 14
    Points
    14
    Par défaut
    Je pourrais p-e détecter si le client se déconnecte
    en regardant l'état de la connexion au niveau des sockets,
    mais comment peut-on obtenir la socket à partir de HttpContext...?

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 38
    Points : 14
    Points
    14
    Par défaut
    Bien je ne trouve pas pourquoi est-ce que la méthode IsClientConnected
    ne fonctionne pas correctement sous IIS 6.0 mais j'ai trouvé une autre solution (pour ceux qui aurait le même problème):

    - J'ai trouvé une API permettant de faire l'équivalent d'un netstat via du code C#.

    - On peut obtenir l'IP et port de la machine et programme qui a lancé la requête HTTP en faisant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int     RemotePort  = Int32.Parse(HttpContext.Current.Request.ServerVariables["REMOTE_PORT"]);
    string RemoteAdr  = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
    - Ensuite il ne reste plus qu'à parcourir la table des connexions fournies par l'API, et là on peut tester si l'état est sur ESTABLISHED pour RemotePort et RemoteIP.


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

Discussions similaires

  1. Pourquoi ma division renvoi toujours 0?
    Par miniil dans le forum Langage
    Réponses: 4
    Dernier message: 31/01/2010, 22h53
  2. [asio] Pourquoi in_avail renvoie toujours 0 ?
    Par Sunsawe dans le forum Boost
    Réponses: 6
    Dernier message: 15/07/2008, 23h37
  3. socket send renvoi toujours (-1)
    Par tkwebch dans le forum Réseau
    Réponses: 8
    Dernier message: 30/08/2006, 17h24
  4. isdigit() renvoie toujours 0
    Par gangsoleil dans le forum C
    Réponses: 30
    Dernier message: 07/08/2006, 13h42
  5. [MySQL] Mon SELECT COUNT me renvoie toujours 1
    Par diaboloche dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 11/07/2006, 11h53

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