c#:尝试下载文件时出现随机FTP错误(550)

c#:尝试下载文件时出现随机FTP错误(550),c#,.net,ftp,C#,.net,Ftp,我有一个困扰了我一段时间的问题 我从.net中的FTP服务器下载文件时,随机(我坚持认为,这是完全随机的)出现以下错误: System.Net.WebException:远程服务器返回错误:(550)文件不可用(例如,找不到文件,无法访问) net中的代码实现了重试机制,因此当发生此错误时,代码将再次下载所有文件。然后,有时候,它会成功,有时候,550错误会发生在另一个文件上,有时候在同一个文件上,这是完全随机的 我们是DownloadFile方法的一个片段,它为要下载的每个文件调用 byte[

我有一个困扰了我一段时间的问题

我从.net中的FTP服务器下载文件时,随机(我坚持认为,这是完全随机的)出现以下错误:

System.Net.WebException:远程服务器返回错误:(550)文件不可用(例如,找不到文件,无法访问)

net中的代码实现了重试机制,因此当发生此错误时,代码将再次下载所有文件。然后,有时候,它会成功,有时候,550错误会发生在另一个文件上,有时候在同一个文件上,这是完全随机的

我们是DownloadFile方法的一个片段,它为要下载的每个文件调用

byte[] byWork = new byte[2047];
...
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(new Uri(_uri.ToString() + "/" + filename));
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.Credentials = new NetworkCredential(_Username, _Password);
using (FtpWebResponse response = (FtpWebResponse)request.GetResponse())
            {
                using (Stream rs = response.GetResponseStream())
                {
                    using (FileStream fs = new FileStream(destination, FileMode.Create))
                    {
                        do
                        {
                            iWork = rs.Read(byWork, 0, byWork.Length);
                            fs.Write(byWork, 0, iWork);
                        } while (iWork != 0);
                        fs.Flush();
                    }
                }
            }

同样,困扰我的是,如果代码中有错误,每次都会发生550错误。但是,我们可以尝试下载一个文件,我们得到了错误,我们尝试再次下载具有相同参数的相同文件,它将工作。而且更大的文件可能会更频繁地发生这种情况。有什么想法吗?

请注意,下面只是个轶事,除了模糊的记忆和假设,我什么都没有。因此,与其说是一个真正的解决方案,不如说是“振作起来,这可能根本不是你的错”

我认为550个错误更有可能是由于服务器而不是客户机的一些问题造成的。我记得在使用一个旧的ISP的ftp服务器时经常会出现550个错误,我也尝试过各种各样的客户端,但没有产生任何实际的影响。我还记得看到其他人在同一台服务器和其他服务器上发布类似问题的消息


我认为最好的处理方法是自动重试下载,希望在几次尝试后你会得到它,尽管这显然意味着你浪费了带宽。

请注意,下面只是一个轶事,除了模糊的记忆和假设,我什么都没有。因此,与其说是一个真正的解决方案,不如说是“振作起来,这可能根本不是你的错”

我认为550个错误更有可能是由于服务器而不是客户机的一些问题造成的。我记得在使用一个旧的ISP的ftp服务器时经常会出现550个错误,我也尝试过各种各样的客户端,但没有产生任何实际的影响。我还记得看到其他人在同一台服务器和其他服务器上发布类似问题的消息

我认为最好的处理方法是自动重试下载,希望在几次尝试后你会得到它,尽管这显然意味着你浪费了带宽