Ik krijg deze foutmelding wanneer ik een webservice aanroep:
“De externe server heeft een fout geretourneerd: (407) Proxy Authentication Required”.
Ik snap het algemene idee en ik kan de code laten werken door toe te voegen
myProxy.Credentials = NetworkCredential("user", "password", "domain");
of door DefaultCredentials in code te gebruiken. Mijn probleem is dat de aanroep naar de webservice zonder dit in productie werkt.
Het lijkt alsof er een niet-code oplossing is met Machine.config, maar wat is het? Op dit moment kan ik niet bij het machine.config-bestand van de productiebox komen om te zien hoe dat eruitziet. Ik heb geprobeerd mijn machine.config als volgt bij te werken, maar ik krijg nog steeds de 407-fout.
<system.net>
<defaultProxy enabled="true" useDefaultCredentials="true">
<bypasslist>
<clear />
</bypasslist>
<proxy proxyaddress="myproxy:9000"
usesystemdefault="false"
bypassonlocal="true"
autoDetect="False" />
</defaultProxy>
</system.net>
Antwoord 1, autoriteit 100%
Voeg dit gewoon toe aan config
<system.net>
<defaultProxy useDefaultCredentials="true" >
</defaultProxy>
</system.net>
Antwoord 2, autoriteit 38%
In de volgende code hoeven we de inloggegevens niet hard te coderen.
service.Proxy = WebRequest.DefaultWebProxy;
service.Credentials = System.Net.CredentialCache.DefaultCredentials; ;
service.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
Antwoord 3, autoriteit 13%
Neem contact op met uw firewall-expert.
Ze openen de firewall voor PROD-servers, dus het is niet nodig om de proxy te gebruiken.
Bedankt, je tip heeft me geholpen mijn probleem op te lossen:
Moest de inloggegevens op twee locaties instellen om voorbij de 407-fout te komen:
HttpWebRequest webRequest = WebRequest.Create(uirTradeStream) as HttpWebRequest;
webRequest.Proxy = WebRequest.DefaultWebProxy;
webRequest.Credentials = new NetworkCredential("user", "password", "domain");
webRequest.Proxy.Credentials = new NetworkCredential("user", "password", "domain");
en voila!
Antwoord 4, autoriteit 4%
Waarschijnlijk heeft de machine of web.config in prod de instellingen in de configuratie; je hebt de proxy-tag waarschijnlijk niet nodig.
<system.net>
<defaultProxy useDefaultCredentials="true" >
<proxy usesystemdefault="False"
proxyaddress="http://<ProxyLocation>:<port>"
bypassonlocal="True"
autoDetect="False" />
</defaultProxy>
</system.net>
Antwoord 5, autoriteit 2%
HttpWebRequest webRequest = WebRequest.Create(uirTradeStream) as HttpWebRequest;
webRequest.Proxy = WebRequest.DefaultWebProxy;
webRequest.Credentials = new NetworkCredential("user", "password");
webRequest.Proxy.Credentials = new NetworkCredential("user", "password");
Het is gelukt.
Antwoord 6
Ik had een soortgelijk proxy-gerelateerd probleem. In mijn geval was het voldoende om toe te voegen:
webRequest.Proxy.Credentials = new NetworkCredential("user", "password", "domain");
Antwoord 7
Dacht om dit antwoord te schrijven omdat niets van bovenaf werkte & je wilt geen proxylocatie specificeren.
Als u httpClient
gebruikt, overweeg dan dit.
HttpClientHandler handler = new HttpClientHandler();
IWebProxy proxy = WebRequest.GetSystemWebProxy();
proxy.Credentials = CredentialCache.DefaultCredentials;
handler.Proxy = proxy;
var client = new HttpClient(handler);
// your next steps...
En als je HttpWebRequest
gebruikt:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri + _endpoint);
IWebProxy proxy = WebRequest.GetSystemWebProxy();
proxy.Credentials = CredentialCache.DefaultCredentials;
request.Proxy = proxy;
Soort referentie: https://medium.com/@siriphonnot/the-remote-server-returned-an-error-407-proxy-authentication-required-86ae489e401b