URLに誤りがないかHttpWebRequestでGetResponseしてStatusCodeを見ています。
だいたいのURLは問題なくレスポンスが取れるのですが、タイムアウトになるURLがあります。
タイムアウト時間を1分に伸ばしてみましたが、改善しませんでした。
ブラウザからは問題なくアクセスできることを確認しています。
タイムアウトの理由としては何が考えられるでしょうか?
【エラー内容】
System.Net.WebException: リモート サーバーに接続できません。 ---> System.Net.Sockets.SocketException: 接続済みの呼び出し先が一定の時間を過ぎても正しく応答しなかったため、接続できませんでした。または接続済みのホストが応答しなかったため、確立された接続は失敗しました。
場所 System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
場所 System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception)
【ソース】
static public HttpStatusCode GetStatusCode(string url) {
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); HttpWebResponse res = null; HttpStatusCode statusCode; try { req.Timeout = 60000; res = (HttpWebResponse)req.GetResponse(); //ここでエラーが発生 statusCode = res.StatusCode; } catch (WebException ex) { res = (HttpWebResponse)ex.Response; if (res != null) { statusCode = res.StatusCode; } else { throw; //ここを通過し、エラーが返却される } } finally { if (res != null) { res.Close(); } } return statusCode;
}
ちなみに.Net Framework 4.7.1です。

回答1件
あなたの回答
tips
プレビュー