web-dev-qa-db-ja.com

リモート名を解決できませんでした-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");

同じコードをローカルコード/環境に配置すると、正常に動作します。

9
k-s

ほとんどの場合、実際にコードを実行する他の場所は、そのリモートの場所にアクセスできません。つまり多くの企業環境では、サーバーはインターネットへの外部アクセスを許可されていません。 ping/traceroute russgates85-001-site1.smarterasp.netfrom他のサーバー、およびアクセスがない場合-ルーター/ファイアウォール(ポートを開くなど)を構成するか、プロキシを使用します

7
Yuriy Galanter

私はこれに遭遇し、DNS名ではなくリモートサーバーのIPを使用する必要がありました。プロダクションはDNS名を使用してリモートサーバーにアクセスしようとしましたが、ファイアウォールのその側では実行できませんでした。

5
Ken Johnson

私は同じ問題を抱えており、ウェブクライアントのプロキシを設定することで解決しました

明らかに好き

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

デフォルトでは、システムプロキシが使用されます。

これを解決するには、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>
0