PRB: Fehler bei .NET Client, der einen Webdienst über einen HTTP-Proxyserver verwendet

Problembeschreibung

Hinweis In diesem Artikel auf den folgende.NET Framework-Klassenbibliothek Namespace verweist:

System.Net

Wenn Sie ein an einen Webdienst über einen HTTP-Proxyserver verwenden, erhalten Sie folgende Fehlermeldung:
Die zugrunde liegende Verbindung wurde geschlossen: der Remotename konnte nicht aufgelöst werden.

Ursache

Ein HTTP-Proxyserver zwischen Webdienst und .NET Client vorhanden ist, und nicht die richtigen Proxyeinstellungen konfiguriert wurden.

Problemlösung

Geben Sie zum Beheben dieses Problems die richtigen Proxykonfigurationseinstellungen .NET Client.

Weitere Informationen

Es folgen die Standardeinstellungen in der Datei Machine.config:
<configuration>   <system.net>
<defaultProxy>
<proxy
usesystemdefault = "true"
/>
</defaultProxy>
</system.net>
</configuration>


Die Standardeinstellungen Proxyeinstellungen nicht automatisch erkannt, Usessystemdefault auf False gesetzt und den Proxyserver explizit festlegen. Um den Proxy-Server explizit festzulegen, verwenden Sie Machine.config oder Web.config-Datei, oder geben Sie programmgesteuert an den Server.

Der Proxyserver an Einstellen der Machine.config oder Web.config-Datei wie folgt:
<configuration>   <system.net>
<defaultProxy>
<proxy
usesystemdefault = "false"
proxyaddress="http://proxyserver"
bypassonlocal="true"
/>
</defaultProxy>
</system.net>
</configuration>


Ändern der Einstellung programmgesteuert mithilfe eines WebProxy -Objekts verwenden Sie den folgenden Beispielcode:
Using System.Net;
com.someserver.somewebservice.someclass MyWebServiceClass = new com.someserver.somewebservice.someclass();

IWebProxy proxyObject = new WebProxy("http://myproxyserver:80", true);
MyWebServiceClass.Proxy = proxyObject;

MyWebServiceClass.MyWebMethod();




Proxyserver, die NTLM-Authentifizierung

Um NTLM-Authentifizierung für den Proxy-Server verwenden Sie den folgenden Beispielcode:
Using System.Net;
WebProxy myProxy = new WebProxy("http://proxyserver:port",true);
myProxy.Credentials = CredentialCache.DefaultCredentials;
FindServiceSoap myFindService = new FindServiceSoap();
myFindService.Proxy = myProxy;
Sie können auch systemweite Proxy standardmäßig. Zu diesem Zweck verwenden Sie die folgenden Optionen in der Konfigurationsdatei:
<configuration>    <system.net> 
<defaultProxy>
<proxy
proxyaddress = "http://proxyserver:80"
bypassonlocal = "true" />
</defaultProxy>
</system.net>
</configuration>

Referenzen

Weitere Informationen finden Sie auf folgenden Websites von Microsoft Developer Network (MSDN):Klicken Sie für Weitere Informationen auf die folgende Artikelnummer, um den Artikel der Microsoft Knowledge Base anzuzeigen:

307220 wie einen XML-Webdienstclient unter Verwendung von.NET Framework mit einem Proxyserver arbeiten konfigurieren

Eigenschaften

Artikelnummer: 318140 – Letzte Überarbeitung: 16.01.2017 – Revision: 1

Feedback