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) :
Extrait du Web.config :
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>
Merci d'avance pour votre aide !
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>
NeoMan
Partager