2009-09-11 6 views
7

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:

  1. 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.

  2. 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".

  3. 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.

  4. Ich versuchte dann einen anderen Webservice von Drittanbietern, der das gleiche Verhalten wie in 1, 2 und 3 oben gab.

  5. 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?

+0

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

+0

Haben Sie ISA Server oder einige Firewalls oder Proxies? – rahul

+2

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; –

Antwort

7

Von Markus Kommentar auf seine eigene Frage:

Es war am Ende ein Proxy-Server Problem. Die Ausnahmebotschaft war ein Ablenkungsmanöver. Um es zu beheben habe ich eine Instanz von WebProxy unter Verwendung der IP-Adresse und Port unserer Proxy-Server:

WebProxy proxy = new WebProxy(proxyServerIPAddress, Convert.ToInt32(proxyServerPort));  
myService.Proxy = proxy; 
0

Ich denke, das auch ein DNS-Problem hinweisen könnte, wie ich mit diesem über meine eigenen jüngsten Erfahrungen vorläufig bin Abschluss Ausnahme. In meiner (jüngsten) Erfahrung wurde die Ausnahme nicht mehr von alleine ausgelöst (und von meiner App protokolliert).

5
<system.net> 
     <defaultProxy> 
      <proxy 
       usesystemdefault = "false" 
     /> 
     </defaultProxy> 
    </system.net> 

abbrechen Ihre Proxy

0

Wir hatten die ein Problem mit zwei Anwendungen auf einem Problem-Server ausgeführt wird.Der Fehler tritt nur dann auf, wenn er unter SQL Job Agent unter einem Zeitplan ausgeführt wird. Daher ist es sehr schwierig, das Problem zu isolieren. Es stellte sich heraus, dass die Netzwerkbenutzer Probleme bei der Migration von der ISA-Firewall zur Forefront-Firewall hatten. Iamtonyzhous Lösung, "usesystemdefault" in der app.config zu verwenden, funktionierte gut als Workaround, bis die Netzwerk-Firewall-Probleme gelöst sind. Ich glaube nicht, dass ich jemals ein WebProxy-Objekt installieren würde, da unsere Firewall-Konfigurationen immer Änderungen unterliegen.

Verwandte Themen