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

Windows Communication Foundation .NET Discussion :

WSDualHttpBinding possible avec un client non web ?


Sujet :

Windows Communication Foundation .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de NeoMan
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 171
    Par défaut WSDualHttpBinding possible avec un client non web ?
    Bonjour à tous !

    Je vais tenter d'être le plus clair possible.

    Contexte : Je suis en train de faire une solution de sauvegarde de fichiers en ligne. Le fonctionne que je souhaite implique une communication duplex.
    Le service est hébergé via un fichier *.svc sur un site internet en WSDualHttpBinding. Le client est potentiellement une application Console ou Win32 ou WPF. Le tout fonctionne très bien quand la partie serveur et la partie client est sur le même pc.

    Problème : Quand je teste avec la partie serveur sur un pc distant, j'ai une CommunicationException "La négociation de sécurité a échoué car la partie distante n'a pas renvoyé une réponse dans le délai imparti."

    Hypothèse : Comme vous le remarquerez en jetant un oeil sur l'extrait du App.config (partie client), je n'ai pas spécifié de clientBaseAddress; or il semblerait que cela soit obligatoire pour le mode WSDualHttpBinding.
    Mais je m'interroge : qui dit URL, dit serveur web pour interpréter et traiter la requête. Or ici on est sur la partie cliente, où le pc n'a pas nécessairement un IIS qui tourne (et encore moins de paramétré avec l'URL que l'on indiqué dans le fichier de configuration) !

    Question : Le mode WSDualHttpBinding n'est-il que prévu pour une communication entre serveur web ??

    Annexes :
    Extrait d'App.config (partie cliente) :
    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
    23
    24
     
    <system.serviceModel>
    	<services>
    		<service behaviorConfiguration="BhaeekServiceBehavior" name="Ghaeek.Bhaeek.BhaeekServerManager">
    			<endpoint address="http://demo.server-test.com/BhaeekService.svc" binding="wsDualHttpBinding" bindingConfiguration="NoSecured" contract="Ghaeek.Bhaeek.Services.IBhaeekService" />
    			<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
    		</service>
    	</services>
    	<bindings>
    		<wsDualHttpBinding>
    			<binding name="NoSecured">
    				<security mode="None" />
    			</binding>
    		</wsDualHttpBinding>
    	</bindings>
    	<behaviors>
    		<serviceBehaviors>
    			<behavior name="BhaeekServiceBehavior">
    				<serviceMetadata httpGetEnabled="true"/>
    				<serviceDebug includeExceptionDetailInFaults="false"/>
    			</behavior>
    		</serviceBehaviors>
    	</behaviors>
    </system.serviceModel>
    Extrait du Web.config :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <system.serviceModel>
        <client>
          <endpoint address="http://demo.server-test.com/BhaeekService.svc"
                    binding="wsDualHttpBinding"
                    contract="Ghaeek.Bhaeek.Services.IBhaeekService"
                    name="configClient" />
        </client>
    </system.serviceModel>
    Merci d'avance pour votre aide !

    NeoMan

  2. #2
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  3. #3
    Membre confirmé Avatar de NeoMan
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 171
    Par défaut
    Merci Badger pour ta réponse.
    J'avais déjà lu cet article, comme tous les articles/topics sur Developpez qui traire de WSDualHttpBinding. Mais il n'apporte pas de réponse à ma question : faut-il un serveur web côté client ? Faut-il aussi configurer les pare-feu (la réponse est-elle une connexion entrante pour le client), j'imagine que oui... Donc si oui et qu'on a une box il faut configurer le forwarding, etc... Ce qui voudrait dire qu'en pratique ce binding n'est pas utilisable par une application que l'on va déployer via un simple programme d'installation...
    Est ce que je me pose des questions métaphysiques sans réalité concrète ou ne suis-je pas tout à fait dans le faux ?

    NeoMan

  4. #4
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Par défaut
    Pas besoin de serveur, WCF s'occupe de ça. Par contre je pense qu'il faut peut être faire quelques manip sur le firewall pour autoriser les connexion entrantes sur l'adresse de callback chez le client.
    D'un coté c'est ce que font les applis dans ce cas.

    Pour le forward de la box, je ne sais pas.

    Tu as aussi le NetTcpBinding qui pourrait passer outre le pb de la box.

    A tester.
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  5. #5
    Membre confirmé Avatar de NeoMan
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 171
    Par défaut
    En effet à tester.
    Malheureusement je dois avancer sur un autre projet cette semaine. Je testerai ce week-end. Biensûr je vous tiens au courant des résultats.

    NeoMan

  6. #6
    Membre actif Avatar de jkakim
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 94
    Par défaut
    Citation Envoyé par NeoMan Voir le message
    Merci Badger pour ta réponse.
    Mais il n'apporte pas de réponse à ma question : faut-il un serveur web côté client ? Faut-il aussi configurer les pare-feu (la réponse est-elle une connexion entrante pour le client), j'imagine que oui... Donc si oui et qu'on a une box il faut configurer le forwarding, etc... Ce qui voudrait dire qu'en pratique ce binding n'est pas utilisable par une application que l'on va déployer via un simple programme d'installation...
    NeoMan
    Ce binding est utilisable par tout application, c'est vrai qu'il faut un config de firewall dans un cas mais je ne pense pas que chez toi ça soit déjà le moment.

    Le client aussi a besoin d'un URI, car c'est l'adresse de ton service. Dans le cotexte du ABC WCF (Adress, Binding et Contract), si c'est dans le web qu'il va tourner comme tu le dis. Alors je te conseillerai de de rajouter le MEX pour avoir un proxy coté client,

    Va sur ce lien : http://blogs.msdn.com/Pascal : le blog de Pascal Belaud, ila détaillé sur le WCF.
    Sinon on creusera encore !

    > Bon prog

Discussions similaires

  1. Appeler un web service SOAP en php avec un client JavaScript
    Par lord.66 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 05/06/2009, 14h04
  2. Appeler un web service SOAP en php avec un client JavaScript
    Par lord.66 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 31/05/2009, 12h42
  3. Réponses: 1
    Dernier message: 24/04/2009, 16h26
  4. Consommer un web service JAX-WS avec un client JDK 1.4 ?
    Par Jibee dans le forum Services Web
    Réponses: 1
    Dernier message: 23/10/2008, 10h47
  5. [JAXB/DOM] Parser Xml : possible avec path reel et non uri !
    Par Jaxofun dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 01/08/2005, 10h04

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