无法解析远程名称 - webclient

时间:2013-05-18 16:10:10

标签: c# asp.net webclient

我遇到了这个错误:

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

当我要求使用Web客户端读取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");

当我在本地代码/环境中放置相同的网址时,它可以正常工作。

4 个答案:

答案 0 :(得分:7)

您运行代码的其他位置很可能无法访问该远程位置。即在许多企业环境服务器上不允许外部Internet访问。 您可能想尝试ping / traceroute {/ 1}} 来自其他服务器,如果没有访问权限 - 配置路由器/防火墙(开放端口等)或使用代理

答案 1 :(得分:5)

我遇到了这个并且需要使用远程服务器的IP而不是DNS名称。 Production试图使用其DNS名称访问远程服务器,这在防火墙的那一侧是不可行的。

答案 2 :(得分:1)

我遇到了同样的问题,并通过为webclient设置代理来解决问题

  

明确地喜欢

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

答案 3 :(得分:0)

默认情况下,它将使用系统代理。

要解决此问题,请强制在web.config或.cs api webclient中设置代理。

代码修复应类似于以下内容,位于web.config中System.net下的部分

<defaultProxy>

<proxy proxyaddress="http://0.000.000.000:00" bypassonlocal="True" usesystemdefault="False" autoDetect="False" />

</defaultProxy>