2011-12-04 10 views
0

に発生した私は、HttpWebRequestのクラスを使用してmは非同期に以下のコード(そのちょうどWindowsアプリケーション)基になる接続が閉じられました非同期HttpWebResponseの:予期しないエラーが送信

private void StartWebRequest(string url) 
    { 

      HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 
      request.BeginGetResponse(new AsyncCallback(FinishWebRequest), request); 


    } 

    private void FinishWebRequest(IAsyncResult result) 
    { 
      HttpWebResponse response = (result.AsyncState as HttpWebRequest).EndGetResponse(result) as HttpWebResponse; 
      Stream responseStream = response.GetResponseStream(); 
      int num = 100000; 
      byte[] buffer = new byte[num]; 
      int offset = 0; 
      while ((num2 = responseStream.Read(buffer, offset, 1000)) != 0) 
      { 
       offset += num2; 
      } 
      MemoryStream stream = new MemoryStream(buffer, 0, offset); 
      Bitmap bitmap = (Bitmap)Image.FromStream(stream); 
      bitmap.Save(@"z:\new.jpg"); 
      response.Close(); 

      responseStream.Close(); 
      stream.Close(); 

    } 

として時々私はエラーを取得:
基本的な接続が閉じられました:送信時に予期しないエラーが発生しました
この問題を解決する方法はありますか?
ありがとう

答えて

2

リモートサーバーからデータを読み取っていますが、リモートサーバーへの送信要求が失敗しています。

については、なぜになっているのか、内部例外があるかどうかを確認してください。たとえば、次のようなものを使用する必要があります。リモートサーバーが接続を閉じる理由を設定するためにFiddlerまたは他のプロキシ

ちなみに、1000バイトブロックで読んでいる理由はありますか?それはあなたが指定した100kbの配列にサーバーから直接ストリーミングする方が良いかもしれないと私に気づきます。また、そのバッファがイメージに十分な大きさであることを確認してください。

関連する問題