2010-08-12 3 views
0

Je consomme un service Web dans l'application .NET avec le client WCF.Problème de connexion client WCF

L'adresse du point de terminaison du service est sur le port 4338, et il est sur HTTPS, sécurisé avec la norme WS-Security.

Donc, l'adresse est quelque chose comme:

https://[servername]:4338/[servicename]/ 

je n'étais pas en mesure de communiquer au service avec juste l'application en cours d'exécution. il m'a donné l'erreur suivante:

Impossible de se connecter à [nomserveur]: 4338 code d'erreur TCP 10060: Une connexion tentative a échoué parce que le connecté partie n'a pas répondu correctement après une période de temps, ou connexion établie a échoué parce que connecté hôte n'a pas répondu [nomserveur]: 4338

Mais quand je lance Fiddler pour enquêter sur la communication http, l'application commence à w ork, et je serai en mesure de communiquer au service. De plus, je veux ajouter que j'ai un service différent sur le même serveur Web qui héberge le premier service, et que l'adresse du deuxième service est hébergée sur le port 8080, et que je peux communiquer avec le client WCF (sans courir Fiddler).

Donc, j'ai recherché sur google et j'ai trouvé que cela pouvait être lié aux paramètres de proxy. Savez-vous quel est le problème et comment puis-je le résoudre?

Merci

Répondre

0

Si vous avez défini proxy dans Internet Explorer, il peut provoquer le problème. Que se passe-t-il lorsque vous ouvrez https://[servername]:4338/[servicename]/ dans Internet Explorer? Fiddler agit comme un serveur proxy Internet.

1

En général, tout symptôme de la forme: "ça marche quand j'utilise Fiddler" signifie "ça marche quand il y a un serveur proxy (différent)".

Vérifiez les paramètres de votre serveur proxy. En particulier, comme suggéré empi, essayez-le dans un navigateur. Si cela fonctionne, cela peut être dû au fait que le navigateur a configuré les paramètres de proxy et que vous ne les avez pas configurés pour WCF.

0

Merci empi pour la réponse. J'ai trouvé la réponse. En fait, dans notre société, nous avons un proxy paramètres par "script de configuration automatique" et dépend des sites Web que nous ciblons en interne, le script nous indiquera le bon proxy. Donc, à partir du script j'ai eu l'adresse proxy correcte. et dans mon application .NET j'ai ajouté ce code WebRequest.DefaultWebProxy = new WebProxy ("http://xx.xx.xx.xx:8080"); et cela a corrigé le problème Le client WCF ne détectait donc pas le paramètre du script automatique. et c'est la raison pour laquelle cela a fonctionné quand j'ai lancé Fiddler, parce que Fiddler écoute la communication http, et l'envoie de nouveau à travers les paramètres.