web ajouter une référence de service derrière un serveur proxy
Je suis en utilisant vs2010. Dans une application console simple j'essaie d'ajouter une référence de service à http://***/service1.asmx
, ancien asmx service.
Mon ordinateur se trouve derrière un serveur proxy, si je reçois une erreur :
"Le serveur distant a renvoyé une réponse inattendue: (407) Proxy
Authentification Requise."
Lorsque jutilise outil wsdl je ne peux pas définir le serveur proxy numéro de port et j'obtiens un message du serveur, par exemple 10.0.0.3:80, n'a pas répondu, mais j'ai besoin de spécifier le port 8080 et ne savent pas comment. Comment pourrais-je créer une référence?
OriginalL'auteur Nikita | 2011-09-12
Vous devez vous connecter pour publier un commentaire.
Regardez les liens ci-dessous pour définir l'adresse du proxy et le port du serveur lors de l'ajout d'une référence web.
http://msdn.microsoft.com/en-us/library/bb628649.aspx
http://msdn.microsoft.com/en-us/library/03seed2h.aspx
Pour ajouter une référence à un asmx
Clic droit sur l'application console et sélectionnez ajouter une référence de service.
Cliquez sur le bouton avancé, puis entrez le asmx adresse dans la barre d'adresse. Cliquez sur le bouton vert à côté de découvrir la asmx.
Donnez-lui un nom et cliquez sur ajouter réf.
Mise à jour: essayez de mettre à jour web config/app config et ajouter;
J'ai mis à jour ma réponse, laissez-moi savoir si cela aide.
J'ai essayé d'ajouter ce paramètre à l'application.config et l'erreur est encore produite. Quand j'ai ajouter une référence web, je peux voir la description du service. J'ai des liens hypertextes 2 méthodes de service. Aussi, j'ai configurer IE options de proxy.
c'est juste une supposition, mais essayez https plutôt que http lors de l'ajout de la asmx.
lors de l'utilisation de https-je obtenir "Ce programme ne peut pas afficher la page web" à la page "Ajouter une référence web" fenêtre
OriginalL'auteur WooHoo
J'ai passé près de 50 heures de trouver le problème, ne pouvait pas trouver n'importe où sur le web, cette solution simple.
En vertu de la section "configuration" dans le Web.config ajouter ceci:
Fonctionne alors comme un charme!
Vous pouvez également le faire dans le code-behind:
Œuvres beau!!!!.
Si vous avez besoin de consommer de HTTPS emplacement ajouter cette configuration:
Ce qui classe le membre
serviceConnection.Proxy
appartient-il?La solution idéale, en fait, je voulais éviter le défaut des paramètres de proxy, j'ai copié votre idée et désactivé le proxy dans la configuration <système.net> <defaultProxy enabled="false" useDefaultCredentials="true"> </defaultProxy> </système.net>
OriginalL'auteur Israel Margulies
Ajout de la Référence:
Assurez-vous d'ajouter la Référence de ce genre. Vous devez cliquer sur "
Add Service Reference
", aller à "Advanced
" et enfin, cliquez sur "Add Web Reference
".Puis ajoutez les éléments suivants:
Pour
port 8080
vous utilisez:De configuration du Proxy de votre Service Web:
Pour s'assurer que le Service Web est à l'aide de votre
Internet Explorer proxy
vous pouvez ajouter les lignes suivantes à votreWeb Service
objet sur votre application cliente.Vous pouvez également configurer manuellement le Proxy:
NTLM
Si vous utilisez l'authentification NTLM, vous aurez probablement besoin pour vous assurer que vous utilisez les informations d'Identification par Défaut sur votre projet client. Vous pouvez facilement le faire en se passant lors de la création du Web Service à l'aide de
UseDefaultCredentials
ensemble detrue
.Vous pouvez également désactiver l'Authentification NTLM pour votre projet de Service Web. Vous pouvez le faire en vertu de
Project Properties -> Web
. Si vous décochez cette option, vous devriez être en mesure d'ajouter le Service Web sans avoir à s'authentifier.http://msdn.microsoft.com/en-us/library/aa378749.aspx
Ce serait en vertu de votre Service Web, et non du client.
"Vous pouvez également désactiver l'Authentification NTLM pour votre projet de Service Web. Vous pouvez le faire en vertu de Propriétés du Projet -> Web. Si vous décochez cette option, vous devriez être en mesure d'ajouter le Service Web sans avoir à s'authentifier." - COMME je l'ai mentionné plus tôt, le service web Authentification Anonyme. Donc, je peux ouvrir la page de service web via mon navigateur. Quand j'ai ouvert uri du service de l'aide du navigateur, il(navigateur) montrez-moi une fenêtre de saisie de nom d'utilisateur et mot de passe. - Je fournir uniquement les informations d'identification du Serveur Proxy.
Avez-vous essayez d'ajouter de l'ensemble UseDefaultCredentials à vrai? Si cela ne fonctionne pas, vous pourriez essayer de mettre le proxy de l'IE proxy par défaut:
_webService.Proxy = WebRequest.GetSystemWebProxy();
Vous pouvez aussi définir les paramètres de proxy manuellement comme ceci:
_webService.Proxy = new WebProxy("hxxp://my-proxy-settings:8080/");
OriginalL'auteur eandersson
Je ne peux pas créer automatiquement référence de service web à l'aide de vs2010.
J'ai décider de les utiliser wsdl.exe outil de, et au paramètre nommé /paramètres de passe fichier xml avec les informations d'identification du serveur proxy
WSDL.exe générer un fichier Service1.cs (par défaut). J'ai ajouter ce fichier de mon projet et de l'utiliser comme ceci :
Avez-vous jeter un oeil à mon dernier commentaire? doit faire cela automatiquement pour vous, en fonction de vos paramètres d'internet explorer.
je ne sais pas quoi d'autre à configurer pour le faire fonctionner automatiquement. Peut-être que notre proxy bloquer certains types de trafic, mais je pense que le http assez pour ajouter une référence.
OriginalL'auteur Nikita