外部 API に対して 1 分あたり頻繁に (1000 以上) アウトバウンド接続を実行している WCF サービスがあります。
私のコードは次の例外を頻繁にスローしますが、WebException ステータス プロパティがReceiveFailureである WebException であることを常に示すとは限りません
送信リクエストを行うコードは次のとおりです。
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(paramBuilder.ToString());
request.ServicePoint.ConnectionLeaseTimeout = 0;
request.Method = "GET";
request.Timeout = 33000; //33 Second Timeout Is By Design
Stream stream = default(Stream);
HttpWebResponse response = default(HttpWebResponse);
try
{
response = (HttpWebResponse) request.GetResponse();
stream = response.GetResponseStream();
reader = new StreamReader(stream,Encoding.UTF8);
string str = reader.ReadToEnd();
return str;
}
catch (WebException exception)
{
//Handle WebException
}
catch (Exception exception)
{
//Handle Exception
}
finally
{
if (reader != null)
reader.Dispose();
if (response != null)
response.Close();
if (stream != null)
stream.Dispose();
}
例外スタック トレースは、例外が GetResponse() から発生したことを示しています。
時折 WebException -ReceiveFailure を受け取ることが原因である可能性があります。
このステータスについては、MSDN のドキュメントを既に参照していますが、それは役に立ちません。