2013-05-18 19 views
6

sto affrontando questo errore:Il nome remoto non può essere risolto - webclient

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

Quando ho richiedere contenuti HTML per leggere utilizzando il client web mi dà errore. Di seguito è riportato il mio codice.

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"); 

quando ho messo lo stesso URL sul mio codice/ambiente locale funziona benissimo.

+0

È il vostro server web in cui si esegue il codice ASP.NET anche il tuo locale macchina dev o qualche altra scatola? –

+0

FYI puoi anche ottenere questo se stai facendo una richiesta a un sito che non ha un certificato valido se è in esecuzione sotto https. (cioè il certificato di sviluppo di IIS Express). Colpirlo nel browser e accettare l'interstitial di avviso consentirà il caricamento. – benmccallum

+0

Come [Ken Johnson ha detto] (https://stackoverflow.com/questions/16626348/the-remote-name-could-non-res-ved-webclient/24293932#24293932) è necessario utilizzare l'IP del server invece del nome del server. – Lvcios

risposta

6

Molto probabilmente l'altra posizione in cui si esegue il codice in effetti non ha accesso a tale posizione remota. Cioè in molti ambienti aziendali i server non sono autorizzati al di fuori dell'accesso a Internet. Si consiglia di cercare di ping/traceroute russgates85-001-site1.smarterasp.netda che altro server e se c'è nessun accesso - configurare il router/firewall (porta aperta, ecc) oppure utilizzare il proxy

+0

Ok, ma il sito Web è già ospitato sopra l'URL in cui tutte le pagine funzionano. Solo il recupero di contenuti utilizzando l'url sopra riportato non funziona con il web client. –

+0

Questo è diverso. La workstation del cliente accede a Internet per raggiungere l'URL di cui sopra. E nel tuo codice è lo stesso server che sta cercando di fare lo stesso. Molte politiche non lo consentono, specialmente tramite l'URL esterno. Potrebbe essere necessario provare il nome del server locale o anche semplice 'localhost' - questo potrebbe funzionare poiché la richiesta è locale al server stesso –

+0

Ok, quindi per server/live .. cosa dovrei fare per farlo funzionare? attualmente mi dà l'errore che ho menzionato. –

5

mi sono imbattuto in questo e bisogno di usare l'IP del server remoto anziché il nome DNS. La produzione stava tentando di accedere al server remoto usando il suo nome DNS, che non era fattibile su quel lato del firewall.

1

Ho avuto lo stesso problema e mi hanno fatto risolto impostando il proxy per il webclient

esplicitamente come

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