J'ai précédemment demandé à question de résoudre l'exception SecurityNegotiationException lors de la tentative d'accès à un service WCF à partir d'un ordinateur distant. Cette exception a été résolue grâce à la réponse de ValtasarIII.Impossible de se connecter au service WCF distant - TimeoutException
Maintenant, j'ai un problème différent. J'ai hébergé mon service sur un serveur et je veux me connecter à l'aide d'une application cliente. Mais, lorsque je tente d'abonner au service de l'application client, rien ne se passe et à la fin je reçois l'exception:
The open operation did not complete within the allotted timeout of 00:00:59.9939996. The time allotted to this operation may have been a portion of a longer timeout.
(je peux partager la trace de la pile si nécessaire)
Bien que quand je essayer de tester si le service est en cours d'exécution, je peux y accéder avec succès via le navigateur de la machine client.
Voici mes configurations:
service - web.config
<configuration>
<system.serviceModel>
<bindings>
<wsDualHttpBinding>
<binding name="wsHttpDual">
<security mode="None">
<message clientCredentialType="None" algorithmSuite="Default" />
</security>
</binding>
</wsDualHttpBinding>
</bindings>
<protocolMapping>
<add scheme="http" binding="wsDualHttpBinding" bindingConfiguration="wsHttpDual"/>
</protocolMapping>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="True"/>
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
client - app.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.serviceModel>
<bindings>
<wsDualHttpBinding>
<binding name="WSDualHttpBinding_ISampleContract" clientBaseAddress="http://95.138.188.232:8000/myClient/">
<!--<security mode="Message">
<message clientCredentialType="Windows" algorithmSuite="Default" />
</security>-->
<security mode="None">
<message clientCredentialType="None" algorithmSuite="Default" />
</security>
</binding>
</wsDualHttpBinding>
</bindings>
<client>
<endpoint address="http://95.138.188.232/autofxtools/service.svc"
binding="wsDualHttpBinding" bindingConfiguration="WSDualHttpBinding_ISampleContract"
contract="ISampleContract" name="WSDualHttpBinding_ISampleContract">
<identity>
<servicePrincipalName value="host/95.138.188.232" />
</identity>
</endpoint>
</client>
</system.serviceModel>
</configuration>
J'ai cherché une solution, mais rien n'a travaillé pour moi. La configuration du service semble ne suggérer aucune exigence de sécurité. Mais, le client avec la même configuration fonctionne en fait à partir de la même machine que le Service mais pas sur une machine distante. Cela signifie-t-il qu'il existe toujours une authentification Windows (par défaut pour wsDualHttpBinding)? Si oui, où vais-je mal?
En espérant obtenir des commentaires positifs.
Cordialement.
Oui je l'héberge via IIS. Et comme je l'ai mentionné, je peux y accéder via un navigateur sur une machine client –
Etes-vous sûr que l'URL du service dans la configuration du client est correcte? 'http: // 95.138.188.232/autofxtools/service.svc' –
En outre, vous fournissez' clientBaseAddress = "http://95.138.188.232:8000/myClient/" 'dans la configuration du client - est-ce correct aussi? ? –