2个有效请求然后超时

时间:2009-10-20 20:37:40

标签: .net http webrequest

这是我的代码。它迭代数据库中的所有文件,并尝试获取Web文件的长度。它只能工作2次。之后它会超时。如果我重新启动应用程序,它会再次处理2个文件然后失败。我不知道可能是什么问题。我感谢任何帮助。

    public void GetFilesSize()
    {
        List<int> ftl = new List<int>(){(int)eFileTypes.JADFile, (int)eFileTypes.SISFile, (int)eFileTypes.SITFile, (int)eFileTypes.ZIPFile };

        foreach (File f in dc.Files.Where(fg => ftl.Contains(fg.FileTypeID) && fg.Size == 0))
        {
            try
            {
                WebRequest request = WebRequest.Create(new Uri(f.MSWebPath));
                request.Method = "HEAD";
                request.Timeout = 2000;
                WebResponse response = request.GetResponse();
                dc.Files.Single(f1 => f1.FileID == f.FileID).Size = (int)response.ContentLength;
                dc.SubmitChanges();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
    }

1 个答案:

答案 0 :(得分:3)

这是否是一个问题,一次只处理来自给定客户端的2个请求的默认行为?在继续下一个请求之前,是否需要强行关闭请求?也许这会让你超过2个命中限制。