2013-05-18 7 views
6

Ich bin vor diesem Fehler:Der Remote-Name nicht aufgelöst werden kann - webclient

The remote name could not be resolved: 'russgates85-001-site1.smarterasp.net'

Wenn ich HTML-Inhalte anfordern Web-Client lesen verwende es mir Fehler gibt. Unten ist mein Code.

string strHTML = string.Empty; 
WebClient myClient = new WebClient(); 
UTF8Encoding utf8 = new UTF8Encoding(); 
byte[] requestHTML; 
string pdfFileName = "outputpdf_" + DateTime.Now.Ticks + ".pdf"; 
string webUrl = Request.Url.Scheme + "://" + Request.Url.Host + (Request.Url.Port != 80 ? ":" + Request.Url.Port : ""); 

requestHTML = myClient.DownloadData("http://russgates85-001-site1.smarterasp.net/adminsec/images/printinvoice.aspx?iid=2"); 

// OR 

requestHTML = myClient.DownloadData(webUrl + "?iid=3"); 

Wenn ich legte die gleiche URL auf meinem lokalen Code/Umgebung funktioniert es gut.

+0

Ist Ihr Webserver, wo Sie Ihre ASP.NET-Code ausführen aufgelöst auch Ihren lokalen Dev-Maschine oder eine andere Box? –

+0

FYI können Sie auch erhalten, wenn Sie eine Anfrage an eine Website stellen, die kein gültiges Zertifikat hat, wenn es unter https ausgeführt wird. (d.h. das IIS-Express-Entwicklungszertifikat). Wenn Sie es in Ihrem Browser aktivieren und die Warnung interstitial akzeptieren, wird es geladen. – benmccallum

+0

Wie [Ken Johnson sagte] (https://stackoverflow.com/questions/16626348/the-remote-name-could-not-be-resolved-webclient/24293932#24293932) müssen Sie die Server-IP anstelle der verwenden Servername. – Lvcios

Antwort

6

Wahrscheinlich hat der andere Ort, an dem Sie den Code ausführen, tatsächlich keinen Zugriff auf diesen Remote-Standort. I.e. In vielen Unternehmensumgebungen sind Server außerhalb des Internetzugriffs nicht erlaubt. Vielleicht möchten Sie ping/trace russgates85-001-site1.smarterasp.netvon, dass andere Server versuchen, und wenn es keinen Zugang ist - Router/Firewall (offener Port etc.) oder Proxy

+0

Ok, aber die Website ist bereits auf der obigen URL gehostet, wo alle Seiten funktionieren. Das Abrufen von Inhalten mithilfe der obigen URL funktioniert nicht mit dem Webclient. –

+0

Das ist anders. Die Client-Workstation greift auf das Internet zu, um die obige URL zu erreichen. Und in Ihrem Code versucht der Server selbst, das Gleiche zu tun. Viele Richtlinien erlauben das nicht, insbesondere über eine externe URL. Möglicherweise müssen Sie stattdessen den Namen des lokalen Servers oder auch nur 'localhost' versuchen - dies könnte funktionieren, da die Anfrage lokal für den Server selbst ist. –

+0

Ok, also für server/live .. was sollte ich tun, damit es läuft? Derzeit gibt es mir Fehler, die ich erwähnt habe. –

5

verwenden konfiguriere ich in diese lief und notwendig, um die IP zu verwenden, des Remote-Servers anstelle des DNS-Namens. Die Produktion versuchte mit ihrem DNS-Namen auf den Remote-Server zuzugreifen, was auf dieser Seite der Firewall nicht möglich war.

1

hatte ich das gleiche Problem und habe es durch Setzen der Proxy für den Webclient

explizit wie

webClient.Proxy = new WebProxy("myproxy.com:portnumber"); 
byte[] bytearr= webClient.DownloadData(acsMetadataEndpointUrlWithRealm);