Fehler tritt auf einem .NET-Client auf, der einen Webdienst über einen HTTP-Proxyserver nutzt
In diesem Artikel erfahren Sie, wie Sie ein Problem beheben, bei dem ein Fehler (Die zugrunde liegende Verbindung wurde geschlossen: Der Remotename konnte nicht behoben werden) auftritt, wenn Sie einen .NET-Client verwenden, um einen Webdienst über einen HTTP-Proxyserver zu nutzen.
Ursprüngliche Produktversion: .NET Framework
Ursprüngliche KB-Nummer: 318140
Symptome
Wenn Sie einen .NET-Client verwenden, um einen Webdienst über einen HTTP-Proxyserver zu nutzen, wird möglicherweise die folgende Fehlermeldung angezeigt:
Die zugrunde liegende Verbindung wurde geschlossen: Der Remotename konnte nicht aufgelöst werden.
Ursache
Zwischen dem Webdienst und dem .NET-Client ist ein HTTP-Proxyserver vorhanden, und die richtigen Proxyeinstellungen wurden nicht konfiguriert.
Lösung
Um dieses Problem zu beheben, geben Sie die richtigen Proxykonfigurationseinstellungen für den .NET-Client an.
Im Folgenden sind die Standardeinstellungen in der Machine.config-Datei aufgeführt:
<configuration>
<system.net>
<defaultProxy>
<proxy
usesystemdefault = "true"
/>
</defaultProxy>
</system.net>
</configuration>
Wenn die Standardeinstellungen die Proxyservereinstellungen nicht automatisch erkennen, legen Sie auf false festusessystemdefault
, und legen Sie dann explizit den Proxyserver fest. Um den Proxyserver explizit festzulegen, verwenden Sie entweder die Machine.config oder Web.config-Datei , oder geben Sie den Server programmgesteuert an.
Um den Proxyserver anzugeben, legen Sie die Machine.config - oder Web.config-Dateieinstellungen wie folgt fest:
<configuration>
<system.net>
<defaultProxy>
<proxy
usesystemdefault = "false"
proxyaddress="http://proxyserver"
bypassonlocal="true"
/>
</defaultProxy>
</system.net>
</configuration>
Verwenden Sie den folgenden Beispielcode, um die Einstellungen programmgesteuert mithilfe eines WebProxy
-Objekts zu ändern:
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 eine NTLM-Authentifizierung erfordern
Verwenden Sie den folgenden Beispielcode, um die Windows NT LAN Manager-Authentifizierung (NTLM) für den Proxyserver festzulegen:
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 einen systemweiten Proxy als Standard verwenden. Verwenden Sie dazu die folgenden Einstellungen in der Konfigurationsdatei:
<configuration>
<system.net>
<defaultProxy>
<proxy
proxyaddress = "http://proxyserver:80"
bypassonlocal = "true"
/>
</defaultProxy>
</system.net>
</configuration>
References
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für