System.Net.WebException:  基础连接已经关闭:  连接被意外关闭。  
     在  System.Net.HttpWebRequest.GetResponse()  位置  
 我是根据数据库中的相关记录来向服务器发送查询请求的,然后将查询结果写回数据库,目前的问题是,如果数据库中的记录数比较少的话,这样查询是没有问题的,但是如果记录数多的话,比如上10万条,则会报上面的这种错误,提示连接被意外关闭,这是什么原因呢,有什么办法解决吗??

解决方案 »

  1.   

    public static string GetHttpSourceValue(string a_strUrl)
    {

    string strResult;
    HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(new System.Uri(a_strUrl));
    myReq.Method = "GET";
    myReq.Accept = "*/*";
    myReq.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)"; try
    {
    HttpWebResponse HttpWResp = (HttpWebResponse)myReq.GetResponse(); string tmp = myReq.Headers.ToString(); Stream myStream = HttpWResp.GetResponseStream(); StreamReader sr = new StreamReader(myStream, Encoding.Default);
    StringBuilder strBuilder = new StringBuilder();
    while (-1 != sr.Peek())
    {
    strBuilder.Append(sr.ReadLine() + "\r\n");
    } strResult = strBuilder.ToString();
    // StreamWriter sw = new StreamWriter("E:\\1.txt", false, Encoding.Default);
    // sw.Write(strResult);
    myStream.Close();
    sr.Close();
    //                sw.Close();
    }
    catch (Exception exp)
    {
    strResult = "错误:" + exp.Message;
    }


    return strResult;
    // StreamWriter sw = new StreamWriter(SaveFileName(), false, Encoding.Default);
    // sw.Write(body);
    // sw.Close();
    }
    }我现在用的...
      

  2.   

    超时?修改服务器timeout?
    不会吧,我是读取一条记录后向服务器提交一个查询请求,处理完毕后,再读下一条记录再提交一个查询请求每一次都是重新进行一次查询,这应该不会存在超时的问题吧???
      

  3.   

    而且我用的是GET方法,在出现错误的时刻,根据捕捉到的请求的Url地址在IE里是可以直接访问得到的。
      

  4.   

    放慢了请求速度后,还真的解决问题了真是shit。谢谢各位的帮忙!