web-dev-qa-db-ger.com

Der Remote-Server hat einen Fehler zurückgegeben: (407) Proxy-Authentifizierung erforderlich

Ich erhalte diese Fehlermeldung, wenn ich einen Webdienst anrufe:

Msgstr "Der Remote - Server hat einen Fehler zurückgegeben: (407) Proxy - Authentifizierung erforderlich".

Ich bekomme eine allgemeine Vorstellung und kann den Code zum Laufen bringen, indem ich ihn hinzufüge

myProxy.Credentials = NetworkCredential("user", "password", "domain");

oder mithilfe von DefaultCredentials im Code. Mein Problem ist, dass der Aufruf des Webservices in der Produktion ohne dieses funktioniert.

Es scheint, als gäbe es eine Nicht-Code-Lösung für Machine.config, aber was ist das? Im Moment kann ich nicht in die machine.config-Datei der Produktionsbox gelangen, um zu sehen, wie das aussieht. Ich habe versucht, meine machine.config wie folgt zu aktualisieren, erhalte aber immer noch den Fehler 407.

<system.net>
    <defaultProxy enabled="true" useDefaultCredentials="true">
        <bypasslist>
            <clear />
        </bypasslist>
        <proxy proxyaddress="myproxy:9000"
               usesystemdefault="false"
               bypassonlocal="true"
               autoDetect="False" />
    </defaultProxy>
</system.net>
69
chris

Füge dies einfach zu config hinzu

<system.net>
    <defaultProxy useDefaultCredentials="true" >
    </defaultProxy>
</system.net>
128
Seçkin Durgay

Im folgenden Code müssen wir die Anmeldeinformationen nicht hart codieren.

service.Proxy = WebRequest.DefaultWebProxy;
service.Credentials = System.Net.CredentialCache.DefaultCredentials; ;
service.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
52

Wenden Sie sich an Ihren Firewall-Experten. Sie öffnen die Firewall für PROD-Server, sodass der Proxy nicht verwendet werden muss.

Vielen Dank Ihr Tipp hat mir geholfen, mein Problem zu lösen:

Die Anmeldeinformationen mussten an zwei Stellen festgelegt werden, um den Fehler 407 zu überwinden:

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");

und voila!

19
Werner du Toit
HttpWebRequest webRequest = WebRequest.Create(uirTradeStream) as HttpWebRequest;

webRequest.Proxy = WebRequest.DefaultWebProxy;

webRequest.Credentials = new NetworkCredential("user", "password");

webRequest.Proxy.Credentials = new NetworkCredential("user", "password");

Es ist erfolgreich.

3
mehmet emin

Ich hatte ein ähnliches Proxy-Problem. In meinem Fall war es genug hinzuzufügen:

webRequest.Proxy.Credentials = new NetworkCredential("user", "password", "domain");
2
KoturB