web-dev-qa-db-fra.com

Client WCF - Authentification proxy 407 requise lors de l'exécution du service Web

J'ai créé une application WinForms simple qui utilise un service Web gratuit  http://www.webservicemart.com/uszip.asmx</a>. Mais cette application ne parvient pas à utiliser le fonctionnement du service avec une erreur:

Le serveur distant a renvoyé une réponse inattendue: (407) Authentification du proxy requise (le serveur ISA requiert une autorisation pour répondre à la demande. L'accès au service du proxy Web est refusé)

Code qui crée un proxy et déclenche une opération de service:

ChannelFactory<ServiceReference1.USZipSoap> proxy = new ChannelFactory<ServiceReference1.USZipSoap>("USZipSoap");
ServiceReference1.USZipSoap client = proxy.CreateChannel();
string str = client.ValidateZip("12345");
MessageBox.Show(str);

Ce problème concerne-t-il un réseau de mon entreprise ou s'agit-il d'un proxy du côté de  webservicemart.com ?

J'ai cherché dans Google beaucoup d'informations sur la modification des fichiers de configuration, la création d'une liaison personnalisée, etc. Mais je ressens le manque de compréhension plus élémentaire ...
Si cette erreur concerne le serveur ISA de notre réseau d'entreprise, quelle configuration dois-je effectuer sur le serveur ISA pour ne pas m'empêcher d'utiliser des services Web externes?

15
Alexander Serdyuk

Dans votre configuration de liaison, assurez-vous que useDefaultWebProxy est défini sur true. Il utilisera la configuration que vous avez trouvée dans IE. Dans votre fichier de configuration, ajoutez l'extrait suivant pour vous assurer que vos informations d'identification sont utilisées par défaut pour l'authentification sur le serveur proxy: 

<system.net>
  <defaultProxy useDefaultCredentials="true" />
</system.net>
43
Ladislav Mrnka

Cela a fonctionné pour moi ... remplacer 10.1.0.50 et le numéro de port par l'adresse IP de votre serveur proxy

  <system.net>
    <defaultProxy useDefaultCredentials="true">
      <proxy usesystemdefault="False" proxyaddress="http://10.1.0.50:8080" bypassonlocal="True" />
    </defaultProxy>
  </system.net>
2
JGilmartin

On dirait que tout le trafic de votre entreprise est redirigé via un proxy. Pouvez-vous naviguer vers le service Web depuis votre IE et voir son wsdl et appeler la page de test pour voir des résultats Si tel est le cas, essayez d'ajouter la section ci-dessous à votre fichier web.config:

<system.net>   
<defaultProxy>     
<proxy proxyaddress="<your proxy address>" bypassonlocal="true" />
</defaultProxy>
</system.net> 

Vous pouvez trouver l'adresse proxy dans les paramètres de votre IE. 

REMARQUE: lorsque vous passez dans des environnements différents, vous devez vous assurer que c'est le même cas. Sinon, vous devez supprimer la configuration ci-dessus.

1
Rajesh

Vous pouvez définir le paramètre web.config du service pour autoriser l'utilisation des paramètres de proxy définis dans Internet Explorer .

0
sk1900

Un jour dans le futur.

WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultNetworkCredentials;
0
Krishneil