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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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.

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