web-dev-qa-db-de.com

WCF-Client - 407 Proxy-Authentifizierung Erforderlich beim Ausführen des Webservice

Ich habe eine einfache WinForms-App erstellt, die kostenlosen Webservice verwendet  http://www.webservicemart.com/uszip.asmx</a>. Diese App kann jedoch die Dienstoperation nicht mit einem Fehler verwenden:

Der Remote-Server hat eine unerwartete Antwort zurückgegeben: (407) Proxy-Authentifizierung erforderlich (Der ISA Server erfordert eine Autorisierung, um die Anforderung auszuführen. Der Zugriff auf den Webproxydienst wird verweigert.)

Code, der einen Proxy erstellt und einen Dienstvorgang auslöst:

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

Ist dieses Problem mit einem Netzwerk meiner Firma oder ist dies ein Proxy auf der Seite von  webservicemart.com ?

Ich habe eine Menge Informationen über das Ändern von Konfigurationsdateien, das Erstellen einer benutzerdefinierten Bindung usw. gegoogelt.
Wenn es sich bei diesem Fehler um einen ISA Server unseres Unternehmensnetzwerks handelt, welche Konfiguration sollte ich dann an ISA Server vornehmen, um mich nicht auf die Verwendung externer Webservices zu beschränken?

15

Stellen Sie in Ihrer Bindungskonfiguration sicher, dass useDefaultWebProxy auf true gesetzt ist - die im IE verwendete Konfiguration wird verwendet. Fügen Sie in Ihrer Konfigurationsdatei das folgende Snippet hinzu, um sicherzustellen, dass Ihre Anmeldeinformationen standardmäßig für die Authentifizierung auf dem Proxyserver verwendet werden: 

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

Das funktionierte für mich ... und ersetzt 10.1.0.50 und die Portnummer durch die IP Ihres Proxyservers

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

Anscheinend wird der gesamte Datenverkehr in Ihrem Unternehmen über einen Proxy umgeleitet. Können Sie von Ihrem IE aus zum Web-Service navigieren und dessen wsdl anzeigen und die Testseite aufrufen, um einige Ergebnisse anzuzeigen. Wenn dies der Fall ist, fügen Sie den folgenden Abschnitt in Ihre web.config ein:

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

Die Proxy-Adresse finden Sie in den Einstellungen Ihres IE. 

HINWEIS: Wenn Sie in andere Umgebungen wechseln, müssen Sie sicherstellen, dass es sich um denselben Fall handelt, ansonsten müssen Sie die obige Konfiguration entfernen.

1
Rajesh

Sie können die web.config des Dienstes so einstellen, dass die Verwendung der Proxy-Einstellungen wie in Internet Explorer definiert zulässig ist.

0
sk1900

Irgendwann in der Zukunft.

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