8

サーバーから画像をダウンロードしたい。画像が存在しない場合は、デフォルトの画像を表示したいと考えています。

これが私のコードです:

string url = "http://www......d_common_conference" + "/" + c.id_common_conference + "-MDC.jpg";

try {
    HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
    request.Method = "HEAD";                        
    HttpWebResponse response = request.GetResponse() as HttpWebResponse;
    string status = Response.StatusCode.ToString();                                               

    img.ImageUrl = url;
}
catch (Exception excep) {
    img.ImageUrl = "images/silhouete.jpg";
    string msg = excep.Message;
} 

うまく動作しますが、24 番目のループまで、応答も例外もスローされず、プログラムが動かなくなります。

どうすればこれを修正できますか?

4

1 に答える 1

4

HttpWebResponse を破棄していません。代わりにこれを試してください。

HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
request.Method = "HEAD";
string status;
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
    status = response.StatusCode.ToString();
}

マシンが確立する TCP 接続の制限に達したと思われます (数を思い出せませんが、メモリが機能する場合は CPU ごとです)

ps 例にタイプミスがありましたresponse。WebRequest の変数を使用していませんでしたがResponse、現在のリクエストのオブジェクトを使用していました。

于 2012-11-28T16:14:05.310 に答える