Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Artikel hilft Ihnen, ein Problem zu beheben, bei dem ein Fehler (die zugrunde liegende Verbindung geschlossen wurde: Der Remotename konnte nicht behoben werden), wenn Sie einen .NET-Client verwenden, um einen Webdienst über einen HTTP-Proxyserver zu nutzen.
Originalproduktversion: .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.
Beschluss
Um dieses Problem zu beheben, geben Sie die richtigen Proxykonfigurationseinstellungen an den .NET-Client an.
Im Folgenden sind die Standardeinstellungen in der Datei "Machine.config " aufgeführt:
<configuration>
<system.net>
<defaultProxy>
<proxy
usesystemdefault = "true"
/>
</defaultProxy>
</system.net>
</configuration>
Wenn die Standardeinstellungen die Proxyservereinstellungen nicht automatisch erkennen, auf usessystemdefault
festgelegt und dann explizit den Proxyserver festlegen. Um den Proxyserver explizit festzulegen, verwenden Sie entweder die Datei "Machine.config " oder "Web.config ", oder geben Sie den Server programmgesteuert an.
Um den Proxyserver anzugeben, legen Sie die Dateieinstellungen "Machine.config " oder "Web.config " 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 NTLM-Authentifizierung erfordern
Verwenden Sie den folgenden Beispielcode, um die Windows NT LAN Manager(NTLM)-Authentifizierung 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 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>