Не удалось разрешить удаленное имя-webclient

я сталкиваюсь с этой ошибкой:

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

когда я запрашиваю содержимое html для чтения с помощью веб-клиента, это дает мне ошибку. Ниже приведен мой код.

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

когда я помещаю тот же URL в свой локальный код / среду, он работает нормально.

3 ответов


скорее всего, другое место, в котором вы запускаете код, действительно не имеет доступа к этому удаленному местоположению. Т. е. во многих корпоративных средах серверы не разрешены вне доступа в интернет. Возможно, вы захотите попробовать ping / traceroute russgates85-001-site1.smarterasp.net С этот другой сервер, и если нет доступа-настройте маршрутизатор / брандмауэр (открытый порт и т. д.) или использовать прокси


Я столкнулся с этим и должен был использовать IP удаленного сервера, а не DNS-имя. Производство пыталось получить доступ к удаленному серверу, используя его DNS-имя, которое не было жизнеспособным с этой стороны брандмауэра.


У меня была та же проблема, и я решил ее, установив прокси для webclient

явно нравится

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