2009-10-20 81 views
1

這是我的代碼。它迭代來自數據庫的所有文件並嘗試獲取Web文件的長度。它只有2次。之後,它會超時。如果我重新啓動應用程序,它再次處理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()); 
      } 
     } 
    } 
+0

在問題和標籤中添加編程語言將幫助您獲得一些答案。是C#,Java還是其他? – Nettogrof 2009-10-21 07:13:35

回答

3

這可能是一個問題,從給定的客戶端一次只處理2個請求的默認行爲?在繼續下一步之前,是否需要強制關閉請求?也許這會讓你超過2次命中限制。

+1

+1。是的,這是問題所在。你必須關閉迴應。上週我有同樣的問題。 – David 2009-11-04 20:48:33