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 :

Test webservice avec client csharp


Sujet :

Services Web

  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 34
    Par défaut Test webservice avec client csharp
    Bonjour,

    Je développe un webservice (Serveur soap en mode document/literal wrapped) en PHP.

    Afin d'être compatible avec tous les clients possible et plus particulièrement perl, c#, java.
    J'essaie de réaliser pour chaque langages un client
    J'ai déjà réaliser un client en perl qui fonctionne.

    Mais je bloque en c# au niveau de l'authentification :
    Pour faire simple, j'ai juste placé une authentification basique.

    Voici le code du client en c#
    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
     
    // Authentification
    CredentialCache cache = new CredentialCache();
    NetworkCredential Auth = new NetworkCredential(user, password);
     
    // Webservice
    WsEntrepriseService svc = new WsEntrepriseService();
    cache.Add(new System.Uri(svc.Url), "Basic", Auth);
    svc.Credentials = cache;
    svc.PreAuthenticate = true;  
     
    // Entrée
    Console.WriteLine("Nom : ");
    name = Console.ReadLine();
     
    // Accès méthode webservice
    output = svc.ditBonjour(name);
     
    // Sortie
    Console.WriteLine("Result : " + output);
    Console.Write("Press any key to continue . . . ");
    Console.ReadKey(true);
    Je précise que si je désactive l'authentification coté serveur le client reçoit bien un réponse.

    Comme je ne suis pas un expert en c# si quelqu'un pouvait m'éclairer....

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    ce serait plus facile de t'aider si tu postais le message d'erreur

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 34
    Par défaut
    Voilà l'erreur de retour

    System.Net.WebException: Impossible de se connecter au serveur distant ---> System.Net.Sockets.SocketException: Aucune connexion n'a pu être établie car l'ordinateur cible l'a expressément refusée
    à System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
    à System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)
    à System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
    --- Fin de la trace liée à l'exception interne ---
    à System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)
    à System.Net.HttpWebRequest.GetRequestStream()
    à System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
    à Csharp.soapserver.sd.dev.WsEntrepriseService.ditBonjour(String name) dans d:\Dev\WsEntrepriseTest\Csharp\Web References\soapserver.sd.dev\Reference.cs:ligne 68
    à Csharp.Program.Main(String[] args) dans d:\Dev\WsEntrepriseTest\Csharp\Program.cs:ligne 43
    Ce qui me parait tous à fait normal car lorsque l'authentification n'a pas réussie alors je ne traite pas les requêtes pour le moment du coté serveur.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Bizarre... pourtant tout a l'air OK au niveau du code. Mais vu l'erreur on dirait qu'il n'atteint même pas la phase d'authentification, c'est une erreur de connexion au niveau socket...

    Essaie de regarder ce qui se passe avec Fiddler

  5. #5
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 34
    Par défaut
    J'ai regardé avec fiddler.

    J'utilise donc toujours le même code pour le client, la seul chose que je fait et d'activer ou de désactiver l'authentification du coté serveur.

    J'ai pu voir que le client charp n'envoie jamais l'authentification donc j'ai comme l'impression qu'il y a un problème dans mon code.

    Comme ci l'authentification n'était pas affecté à l'url.

    Voilà ce qui transite en http
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    POST http://soapserver.sd.dev/ws1 HTTP/1.1
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 2.0.50727.3615)
    Content-Type: text/xml; charset=utf-8
    SOAPAction: "http://soapserver.sd.dev/ws1#ditBonjour"
    Host: soapserver.sd.dev
    Content-Length: 337
    Expect: 100-continue
    Connection: Keep-Alive
     
    <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><ditBonjour xmlns="http://soapserver.sd.dev/ws1"><name xmlns="">michael</name></ditBonjour></soap:Body></soap:Envelope>

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Par défaut
    quelle version de dotnet ?

    normalement ce n'est pas sensé influer, mais j'ai cru voir passer un billet sur le comme quoi les authentification en mode service web passaient pas avant la version 4 (sauf si tu as recours à des services WCF)
    ou c'est peut-être pour silverlight, je ne sais plus, mais bon qui sait.
    moi perso j'ai toujours eu recours au .NET Remoting ou à WCF donc.

  7. #7
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 34
    Par défaut
    En tout cas je suis en

    .NET Version : 2.0.50727.3615

    Maintenant si je change de version pourquoi pas mais je cherche à faire des clients assez rapidement et je ne pense pas que les les entreprises qui vont se connecter à notre webservice soit en version 4.

    Ou trouver de la doc sur toutes les méthodes que tu propose ?

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Par défaut
    non ca .NET version 2.0.50727.3615 : c'est la version de la CLR utilisée qui n'a pas changé depuis des lustres.

    ca ne change rien au framework utilisé... que tu sois en dotnet 2 à 4, c'est toujours la même CLR (2.0.50727.3615) mais je reconnais que c'est un peu déroutant quand on ne le sait pas

    ce qui change d'une version à l'autre du framework c'est les librairies de classes, et les implantations de celles-ci qui peuvent varier, ou le code natif caché derrière.

    pour WCF ya pléthore de tutoriels et doc qui traine sur le net et même ici sur DvP.Net d'excellents tutoriels pour débuter ou pour utilisateurs avertis.
    après une fois que tu connais un peu mieux ton meilleur allié c'est la msdn... mais faut déjà dégrossir le mammouth comme on dit.

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par cinemania Voir le message
    que tu sois en dotnet 2 à 4, c'est toujours la même CLR (2.0.50727.3615)
    Non, en .NET 4.0 c'est le CLR 4.0.30319
    Mais effectivement en .NET 3.0 et 3.5 le CLR n'a pas changé et a donc la même version qu'en .NET 2.0, soit 2.0.50727.3615

  10. #10
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 34
    Par défaut
    Après avoir regarder plus en détail, il semble que j'ai choisit un projet avec .Net 3.5

Discussions similaires

  1. Intégration de test dans le webservice avec soapui
    Par sakli dans le forum Services Web
    Réponses: 0
    Dernier message: 14/04/2011, 12h01
  2. Réponses: 0
    Dernier message: 24/06/2010, 12h43
  3. Test unitaire avec rhino mock pour les clients proxy
    Par trihanhcie dans le forum ASP.NET
    Réponses: 0
    Dernier message: 28/03/2010, 00h32
  4. Test INNODB avec deux clients
    Par rvzip64 dans le forum Requêtes
    Réponses: 3
    Dernier message: 21/01/2009, 13h51
  5. Client webservice avec coldFusion langage
    Par onlybil dans le forum Services Web
    Réponses: 0
    Dernier message: 19/11/2008, 10h33

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