在我的Windows应用程序中,我使用WebClient DownloadFile方法从本地网络上的服务器下载多个PDF文件 .

每个文件都是在调用其URL时生成的报告 . 报告的大小不同,需要不同的时间段才能生成 .

我的代码循环遍历一个URL列表(大约400个),并为每个URL调用DownloadFile方法,并生成相应的报告并下载到本地计算机 . 网址肯定是正确的 .

问题是几乎每次运行应用程序时,一些下载的文件都会损坏,只下载7KB(我认为是元数据),当我尝试打开文件时,Acrobat Reader会给我一条消息:“...它是要么不是受支持的文件类型,要么是因为文件已损坏......“

它并不总是被损坏的文件相同,当我重新运行应用程序时,这些文件通常会成功,而其他一些文件可能会失败......它似乎是随机的,我无法找到标准 .

注1:我不想在完全下载优先级之前开始下载文件,这就是我不使用异步方法的原因 . 注2:所有文件都是Oracle报告,并通过查询数据库生成 . 注3:如果文件损坏,则不会引发EXCEPTION .

这是我的代码:

using ( WebClient client  = new WebClient() )
{
    for(int i=0; i< URL_List.Length; i++)
    {
        try
        {
        client.DownloadFile( URL_List[i] , myLocalPath+fileName+".pdf" );
        }
        catch(Exception x)
        {
         // write exception message to error log...
        }
    }
}

提前致谢 .