私はこのエラーに直面しています:
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");
同じコードをローカルコード/環境に配置すると、正常に動作します。
ほとんどの場合、実際にコードを実行する他の場所は、そのリモートの場所にアクセスできません。つまり多くの企業環境では、サーバーはインターネットへの外部アクセスを許可されていません。 ping/traceroute russgates85-001-site1.smarterasp.net
from他のサーバー、およびアクセスがない場合-ルーター/ファイアウォール(ポートを開くなど)を構成するか、プロキシを使用します
私はこれに遭遇し、DNS名ではなくリモートサーバーのIPを使用する必要がありました。プロダクションはDNS名を使用してリモートサーバーにアクセスしようとしましたが、ファイアウォールのその側では実行できませんでした。
私は同じ問題を抱えており、ウェブクライアントのプロキシを設定することで解決しました
明らかに好き
webClient.Proxy = new WebProxy("myproxy.com:portnumber");
byte[] bytearr= webClient.DownloadData(acsMetadataEndpointUrlWithRealm);
デフォルトでは、システムプロキシが使用されます。
これを解決するには、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>