Ich habe eine .NET-Client-Anwendung, die meinen .NET-Webdienst aufruft, der wiederum einen Webdienst eines Drittanbieters aufruft, z. B. unter "www.foo.com".Ursache der Ausnahme "System.Net.WebException: Der entfernte Name konnte nicht aufgelöst werden"?
.NET Client -> 'My Web Service' -> 'Third Party Web Service'
von Visual Studio 2008, das alles funktioniert gut, das heißt, ich bin mit in localhost:someport
'My Web Service', das erfolgreich den 'Third-Party-Web-Service' nennt.
Ich veröffentlichte dann "My Web Service" auf einer Windows 2003 Server-Box. Jetzt, wenn "My Web Service" den "Third-Party Web Service" aufruft, bekomme ich die Ausnahme
"System.Net.WebException: Der entfernte Name konnte nicht aufgelöst werden: 'www.foo.com'."
Ich habe versucht, die folgenden:
auf dem Server, wo ich 'My Web Service' eingesetzt, öffnete ich den Internet Explorer und trat in die Web-Service-Adresse 'http://www.foo.com/somewebservice.asmx'. Dies war erfolgreich, da die Liste der verfügbaren Webdienstmethoden angezeigt wurde.
In der Datei
web.config
von "Mein Webdienst" habe ich die URL des Drittanbieter-Webdienstes vom Namen der Website in die IP-Adresse geändert. Dies ist mit der Ausnahme fehlgeschlagen, "System.Net.Sockets.SocketException: Eine Socket-Operation wurde versucht, ein unerreichbares Netzwerk".Ich schrieb dann eine einfache Windows Forms-Testumgebung, um nur den "Third-Party Web Service" aufzurufen. Ich habe diesen Test-Kabelbaum auf dem Server ausgeführt und den 'Third-Party Web Service' erfolgreich aufgerufen.
Ich versuchte dann einen anderen Webservice von Drittanbietern, der das gleiche Verhalten wie in 1, 2 und 3 oben gab.
Endlich habe ich die IP-Adresse der "hosts" -Datei auf dem Server hinzugefügt, habe aber den gleichen "Fehler remote name konnte nicht gelöst werden" Fehler, wenn auch viel schneller dieses Mal! Wenn es ein DNS-Problem wäre, würde ich nicht erwarten, dass meine Tests 1 und 3 funktionieren.
Wie behebe ich dieses Problem?
Dies ist höchstwahrscheinlich auf die Sicherheitseinstellungen zurückzuführen, die Ihrer Website/Ihrem Dienst in IIS auf dem Server zugeordnet sind. Etwas in diesen Einstellungen verhindert, dass es an andere Server gesendet wird. Sie sollten versuchen, dies auch auf ServerFault zu veröffentlichen. – BBlake
Haben Sie ISA Server oder einige Firewalls oder Proxies? – rahul
Es war ein Proxy-Server-Problem am Ende. Die Ausnahmebotschaft war ein Ablenkungsmanöver. Um es zu beheben, habe ich eine Instanz von WebProxy mit der IP-Adresse und dem Port unseres Proxyservers erstellt: WebProxy-Proxy = neue WebProxy (proxyServerIPAddress, Convert.ToInt32 (proxyServerPort)); myService.Proxy = Proxy; –