2010-06-27 5 views
1

IIS6502 Mauvaise passerelle WCF ne répond pas

- J'ai un serveur sur mon réseau qui a un nom de réseau appelé Test_Server. Il est connecté à un proxy ISA.

- J'ai un serveur un nom de domaine appelé Live_Server ayant le IP Live_IP. Il n'est connecté à aucun proxy. ou supposé être.

- hors Bien sûr, j'ouvrir tous les ports du pare-feu

-I ont un service REST WCF, j'utilise le protocole HTTPS pour se connecter à lui, tout va bien sur: -

  • 127.0.0.1: SomePort
  • test_Server: SomePort

--Quand je me connecte à WCF reste une des opérations suivantes en utilisant le protocole HTTPS demande: -

Je reçois 502 Bad erreur de passerelle et l'état d'exception est System.Net.WebExceptionStatus.ProtocolError

  • Live_Server: SomePort
  • Live_IP: SomePort

Quelle est chances ??

Ce qui suit est le web.config de WCF

<system.serviceModel> 
    <services> 
    <service name="Contracts.WCF_REST"> 
     <endpoint behaviorConfiguration="webHttp" binding="webHttpBinding" bindingConfiguration="SecureWebHttp" contract="Contracts.IWCF_REST" /> 
    </service> 
    </services> 

    <bindings> 
    <webHttpBinding> 
     <binding name="SecureWebHttp" useDefaultWebProxy="false"> 
     <security mode="Transport"> 
      <transport clientCredentialType="None" proxyCredentialType="None"/> 
     </security> 
     </binding> 
    </webHttpBinding> 
    </bindings> 
    <behaviors> 
    <endpointBehaviors> 
     <behavior name="webHttp"> 
     <webHttp/> 
     </behavior> 
    </endpointBehaviors> 
    </behaviors> 
</system.serviceModel> 

Répondre

2

Fin de la folie

Pour autant que je comprends, le client détectait un proxy et tente de se connecter à travers elle. J'ai simplement demandé à .net d'arrêter d'utiliser n'importe quel proxy trouvé chez le client.

mais je ne comprends toujours pas, pourquoi il woks bien avec HTTP et n'a pas réussi à travailler avec HTTPS. HTTPS fonctionne uniquement lorsque j'arrête d'utiliser le proxy.

Quelqu'un a une meilleure explication?

WebRequest.DefaultWebProxy = null; 
0

J'ai vu un tel problème lors de la connexion sur site un service WCF pour rôle Web hébergé par Azure et ceux-ci sont principalement causés par procuration ayant dans le réseau sur site. Dans tout environnement informatique d'entreprise, tous les paramètres réseau de l'ordinateur sont configurés pour utiliser le serveur proxy, soit Détection automatique, soit si vous avez plusieurs serveurs proxy, vous définissez lequel choisir. Lorsque le service WCF se connecte à l'extérieur du monde, il passe par les mêmes paramètres de proxy et cela change la dynamique de connexion et d'introduction du comportement. Donc pourquoi avec HTTPS, pas avec HTTP, c'est parce que HTTPS utilise TLS pour sécuriser la communication et si vous avez un proxy au milieu, il est très possible que la communication WCF ne puisse pas être établie. En définissant UseDefaultWebProxy sur false, vous demandez au service Web de ne pas utiliser de proxy spécifique à la machine et d'utiliser le paramètre utilisateur qui fait partie de la configuration de votre service Web. De cette façon, vous pouvez imposer votre configuration spécifique à WCF établir une connexion HTTPS sur un proxy spécifique à la machine.