上传批量图像时出现连接超时错误

时间:2012-04-28 14:48:04

标签: c# asp.net

我必须在服务器上一次上传1000到1500张图片。代码如下。

public void add_data()
{
 DataSet ds = new DataSet();
                ds = get_Data();
                int p = 0;
                if (ds.Tables.Count > 0)
                {
                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        int cnt = ds.Tables[0].Rows.Count;
                        while (cnt > 0)
                        {

                            string url = Convert.ToString(ds.Tables[0].Rows[p]["image_name"]);
                            string imagename = url.Substring(url.LastIndexOf('/') + 1);
                            string file_name = imagename;

                            save_file_from_url(file_name, url);
                            p++;
                            cnt = cnt - 1;
                        }
                    }
                }
}



public void save_file_from_url(string file_name, string url)
    {
        if (!File.Exists(file_name))
        {

            try
            {
                byte[] imgcontent;
                //Convert live images into byte array to pass it for ftp server
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                WebResponse response = request.GetResponse();

                Stream stream = response.GetResponseStream();

                using (BinaryReader br = new BinaryReader(stream))
                {
                    imgcontent = br.ReadBytes(500000);
                    br.Close();
                }
                response.Close();

                string CompleteDPath = "www.xyz.com";
                string UName = "abc";
                string PWD = "pwd";
                WebRequest reqObj = WebRequest.Create(CompleteDPath + file_name);
                reqObj.Method = WebRequestMethods.Ftp.UploadFile;
                reqObj.Credentials = new NetworkCredential(UName, PWD);
                reqObj.GetRequestStream().Write(imgcontent, 0, imgcontent.Length);
                reqObj = null;


            }
            catch (Exception ex)
            {
                lblmessage.ForeColor = System.Drawing.Color.Red;
                lblmessage.Text = ex.Message;
            }
        }
    }

但它会出现以下错误

遇到以下错误:

Read Timeout 

系统返回:

[No Error]

等待从网络读取数据时发生超时。网络或服务器可能已关闭或拥塞。请重试您的请求。

您的缓存管理员是网站管理员。

我应该用什么?请帮忙!

1 个答案:

答案 0 :(得分:0)

请在上传一张图片后关闭网络/数据库连接。读取超时是因为连接开启时间太长而且超时。

或者您可以使用逗号进行查询 Insert multiple rows with one statement