C# FtpWebRequest.GetResponse()需要永远的时间

C# FtpWebRequest.GetResponse()需要永远的时间,c#,ftp,C#,Ftp,我制作了一个简单的程序从FTP服务器下载文件,通常效果很好(如果不工作,我经常重启笔记本电脑,程序运行正常),0~1次试用失败。然而,有时程序挂起,什么也没发生,我不想因为这个原因重新启动我的整个电脑。我错过了什么?我应该尝试什么 这是我的密码: while (true) { try { ftprequest = (FtpWebRequest)WebRequest.Create(url

我制作了一个简单的程序从FTP服务器下载文件,通常效果很好(如果不工作,我经常重启笔记本电脑,程序运行正常),0~1次试用失败。然而,有时程序挂起,什么也没发生,我不想因为这个原因重新启动我的整个电脑。我错过了什么?我应该尝试什么

这是我的密码:

        while (true)
        {
            try
            {
                ftprequest = (FtpWebRequest)WebRequest.Create(url);
                ftprequest.Credentials = new NetworkCredential(id, pw);
                ftprequest.KeepAlive = false;
                ftprequest.Method = WebRequestMethods.Ftp.DownloadFile;
                ftprequest.UsePassive = false;
                ftprequest.Timeout = 2000;
                using (var resp = ftprequest.GetResponse())
                {
                    resp.Close();
                    break;
                }
            }
            catch (WebException e)
            {
                if (e.Status == WebExceptionStatus.Timeout && i < 5)
                {
                    i++;
                    Console.WriteLine("Try {0}: failed", i);
                    e.Response.Close();
                }
                else
                {
                    Console.WriteLine("Failed to connect to the server.");
                    Console.ReadKey(true); 
                    return;
                }
            }
        }
while(true)
{
尝试
{
ftprequest=(FtpWebRequest)WebRequest.Create(url);
ftprequest.Credentials=新的网络凭证(id,pw);
ftprequest.KeepAlive=false;
ftprequest.Method=WebRequestMethods.Ftp.DownloadFile;
ftprequest.UsePassive=false;
ftprequest.Timeout=2000;
使用(var resp=ftprequest.GetResponse())
{
分别关闭();
打破
}
}
捕获(WebE例外)
{
if(e.Status==WebExceptionStatus.Timeout&&i<5)
{
i++;
WriteLine(“Try{0}:失败”,i);
e、 Response.Close();
}
其他的
{
Console.WriteLine(“无法连接到服务器”);
Console.ReadKey(true);
返回;
}
}
}
您是否正在阅读ReadKey()语句?您不需要While循环。我会在代码末尾设置ftprequest,以确保所有路径都处理该对象。请正如jdweng所写的那样,
while(true)
的作用是什么?+为什么
KeepAlive=false
?+为什么
useposive=false