1

これが私のコードです。データベースからすべてのファイルを繰り返し、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());
            }
        }
    }
4

1 に答える 1

3

これは、特定のクライアントから一度に 2 つのリクエストしか処理されないというデフォルトの動作の問題でしょうか? 次のリクエストに進む前に、リクエストを強制的にクローズする必要がありますか? おそらく、これで 2 ヒットの制限を超えることができます。

于 2009-11-04T20:43:24.937 に答える